<?xml version="1.0" encoding="UTF-8"?>
<!-- generator="FeedCreator 1.8" -->
<?xml-stylesheet href="https://dokuwiki.grogra.de/lib/exe/css.php?s=feed" type="text/css"?>
<rdf:RDF
    xmlns="http://purl.org/rss/1.0/"
    xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#"
    xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
    xmlns:dc="http://purl.org/dc/elements/1.1/">
    <channel rdf:about="https://dokuwiki.grogra.de/feed.php">
        <title>GroIMP wiki - 01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern</title>
        <description></description>
        <link>https://dokuwiki.grogra.de/</link>
        <image rdf:resource="https://dokuwiki.grogra.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg" />
       <dc:date>2026-05-16T10:31:47+00:00</dc:date>
        <items>
            <rdf:Seq>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern:01_inrgg&amp;rev=1756913675&amp;do=diff"/>
                <rdf:li rdf:resource="https://dokuwiki.grogra.de/doku.php?id=01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern:02_injava&amp;rev=1756830427&amp;do=diff"/>
            </rdf:Seq>
        </items>
    </channel>
    <image rdf:about="https://dokuwiki.grogra.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg">
        <title>GroIMP wiki</title>
        <link>https://dokuwiki.grogra.de/</link>
        <url>https://dokuwiki.grogra.de/lib/exe/fetch.php?media=wiki:dokuwiki.svg</url>
    </image>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern:01_inrgg&amp;rev=1756913675&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-03T15:34:35+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>In XL</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern:01_inrgg&amp;rev=1756913675&amp;do=diff</link>
        <description>In XL

Custom patterns can be created in XL with the simple syntax: 


class patternName(@In Node a, @Out Node b) (
    // some patterns
    )




Declaring In/Out

Custom patterns requires to declare variable with both annotations @In and @Out. It can be two different variables, or the same one.
E.g.</description>
    </item>
    <item rdf:about="https://dokuwiki.grogra.de/doku.php?id=01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern:02_injava&amp;rev=1756830427&amp;do=diff">
        <dc:format>text/html</dc:format>
        <dc:date>2025-09-02T16:27:07+00:00</dc:date>
        <dc:creator>Anonymous (anonymous@undisclosed.example.com)</dc:creator>
        <title>In Java</title>
        <link>https://dokuwiki.grogra.de/doku.php?id=01_user_documentation:07_rgg_xl:02_xl:08_object:02_pattern:02_injava&amp;rev=1756830427&amp;do=diff</link>
        <description>In Java

The minimal format to declare a pattern as java object is: 


class X extends Node {
    static class Pattern extends UserDefinedPattern {
        private static void signature(@In @Out X node) {}
        public Matcher createMatcher(Graph graph, XBitSet bound,
             IntList requiredAsBound) {...}
    }
}</description>
    </item>
</rdf:RDF>
