[PD] Parsing Pd patches in Javascript, Python, Java

Pedro Lopes pedro.lopes at ist.utl.pt
Mon Nov 29 20:14:08 CET 2010


>Hopefully this is useful to someone else.
It will be :)

Thanks,
Pedro

On Mon, Nov 29, 2010 at 4:46 AM, Chris McCormick <chris at mccormick.cx> wrote:

> Hi,
>
> Here is how you can parse Pd patches into rows of atoms in three languages
> using regular expressions:
>
> /*** Javascript ***/
>
>        var lines_re = new
> RegExp("(#((.|\r|\n)*?)[^\\\\])\r{0,1}\n{0,1};\r{0,1}\n", "gi");
>        for (pdline = lines_re.exec(patchtext)) {
>                var atoms = pdline[1].split(/ |\r\n?|\n/);
>        }
>
> ### Python ###
>
>        lines_re = re.compile("(#(.*?)[^\\\])\r{0,1}\n{0,1};\r{0,1}\n",
> re.MULTILINE | re.DOTALL)
>        split_re = re.compile(" |\r\n?|\n", re.MULTILINE)
>        for found in lines_re.finditer(patch):
>                line = found.group(1)
>                atoms = split_re.split(line)
>
> /*** Java ***/
>
>        private static final String line_re =
> "(#((.|\r|\n)*?)[^\\\\])\r{0,1}\n{0,1};\r{0,1}\n";
>        private static final String token_re = " |\r\n?|\n";
>
>        Pattern pattern = Pattern.compile(line_re, Pattern.MULTILINE);
>        Pattern token_pattern = Pattern.compile(token_re,
> Pattern.MULTILINE);
>        Matcher matcher = pattern.matcher(patchtext);
>        ArrayList<String[]> atomlines = new ArrayList<String[]>();
>        while (matcher.find()) {
>                String[] s = token_pattern.split(matcher.group(1));
>                atomlines.add(token_pattern.split(matcher.group(1)));
>        }
>
> Also here is a regular expression for matching dollar args:
>
>        /(?:\\{0,1}\$)(\d+)/g;
>
> Hopefully this is useful to someone else.
>
> Cheers,
>
> Chris.
>
> -------------------
> http://mccormick.cx
>
> _______________________________________________
> Pd-list at iem.at mailing list
> UNSUBSCRIBE and account-management ->
> http://lists.puredata.info/listinfo/pd-list
>



-- 
Pedro Lopes (MSc)
contact: pedro.lopes at ist.utl.pt
website: http://web.ist.utl.pt/Pedro.Lopes
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.puredata.info/pipermail/pd-list/attachments/20101129/40a13786/attachment.htm>


More information about the Pd-list mailing list