<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

<!--
// // See license.txt for license information. // // tangle_tool.xml // // 12-Aug-2003 phamilton Created //
-->

<object xmlns:xi="http://www.w3.org/2001/XInclude" xmlns="urn:xmlliterate.schema" name="tangle_tool">
    <description>A tool for tangling.</description>
    <classname>tangle_tool</classname>
    <namespace>tangle</namespace>
    <members>
        <typedobjreftype name="schema">
            <description>The schema to process.</description>
            <reftype>object</reftype>
        </typedobjreftype>
        <typedobjvectortype name="enumfiledefs">
            <description>The file definitions to use on all enumerations.</description>
            <reftype>enumfiledef</reftype>
        </typedobjvectortype>
        <typedobjvectortype name="objectfiledefs">
            <description>The file definitions to use on all objects.</description>
            <reftype>filedef</reftype>
        </typedobjvectortype>
        <typedobjvectortype name="globalfiledefs">
            <description>The file definitions to use globally. Only one of these files is created every time we run.</description>
            <reftype>filedef</reftype>
        </typedobjvectortype>
        <booltype name="console">
            <description>Output everything to the console. Ignores the file paths (obviously).</description>
        </booltype>
        <stringtype name="objname">
            <description>The name of the object to process. If this is empty, then we process all objects. This doesn't use regex to search for objects (which would be nice!), but it does allow you to say "*" which means all objects. IF the object is followed by "+", then the object and it's descendants are processed. If the objname is ".", then we don't process all objects, we just process all global definition files.</description>
        </stringtype>
    </members>
    <methods>
        <method name="process">
            <inheritance>override</inheritance>
            <implementations>
                <xi:include href="cpp/process.xml"/>
            </implementations>
        </method>
    </methods>
</object>