Boost logo

Boost-Commit :

Subject: [Boost-commit] svn:boost r49962 - in sandbox/mirror/doc/html/mirror/non_boost_book/concepts: . overview xslt
From: chochlik_at_[hidden]
Date: 2008-11-27 14:15:04


Author: matus.chochlik
Date: 2008-11-27 14:15:03 EST (Thu, 27 Nov 2008)
New Revision: 49962
URL: http://svn.boost.org/trac/boost/changeset/49962

Log:
[mirror 0.2.x]
- documentation update

Added:
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/Traversal.xml (contents, props changed)
Text files modified:
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml | 19 +++
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl | 190 +++++++++++++++++++++------------------
   sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl | 13 ++
   3 files changed, 130 insertions(+), 92 deletions(-)

Modified: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml
==============================================================================
--- sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml (original)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/ontology.xml 2008-11-27 14:15:03 EST (Thu, 27 Nov 2008)
@@ -8,6 +8,21 @@
                 <model url="http://www.sgi.com/tech/stl/basic_string.html" name="::std::basic_string"/>
         </concept>
 
+ <concept name="Traversal">
+ <member_function concept="void" name="accept">
+ <fn_param concept="TraversalVisitor" name="_visitor"/>
+ <desc>Accepts the given visitor for traversal of the class' structure only.</desc>
+ </member_function>
+ <member_function concept="void" name="accept">
+ <fn_param concept="TraversalVisitor" name="_visitor"/>
+ <fn_param concept="Pointer" name="_ptr_to_instance"/>
+ <desc>Accepts the given visitor for traversal of the class and of its instance.</desc>
+ </member_function>
+
+ <model name="flat_traversal_of"/>
+ <model name="deep_traversal_of"/>
+ </concept>
+
         <concept name="ContextNodeSet">
                 <metafunction concept="MplIntegralConstant" subnamespace="meta_path" name="size">
                         <metafn_param placeholder="true">
@@ -420,7 +435,7 @@
         <concept name="MetaClass">
                 <model name="meta_class"/>
                 <member_typedef concept="MetaBaseClasses" name="base_classes">
- <desc>The sequence of MetaInheritance(s) reflecting the inheritance of the base classes.</desc>
+ <desc>The sequence of MetaBaseClasses reflecting the inheritance of the base classes.</desc>
                 </member_typedef>
                 <member_typedef concept="MetaClassAttributes" name="meta_attributes">
                         <desc>The sequence of MetaClassAttribute(s) reflecting the "own" attributes of a class. These are the attributes that are defined directly in the class reflected by this MetaClass, not including the attributes inherited from the base classes.</desc>
@@ -523,7 +538,7 @@
         <concept name="MetaInheritance">
                 <model name="meta_inheritance"/>
                 <member_typedef concept="MetaBaseClasses" name="container">
- <desc>The list of MetaInhertiance(s) that this MetaInheritance belongs to.</desc>
+ <desc>The list of MetaBaseClasses that this MetaInheritance belongs to.</desc>
                 </member_typedef>
         </concept>
         

Added: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/Traversal.xml
==============================================================================
--- (empty file)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/Traversal.xml 2008-11-27 14:15:03 EST (Thu, 27 Nov 2008)
@@ -0,0 +1,3 @@
+<?xml version="1.0" encoding="utf-8"?>
+<?xml-stylesheet type="text/xsl" href="transform.xsl" ?>
+<concept name="Traversal"/>

Modified: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl
==============================================================================
--- sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl (original)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/overview/transform.xsl 2008-11-27 14:15:03 EST (Thu, 27 Nov 2008)
@@ -21,39 +21,59 @@
 
         <xsl:template name="make-list-of-already-done-members">
                 <xsl:param name="current"/>
- <xsl:param name="member_type"/>
- <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_type]">
+ <xsl:param name="member_kind"/>
+ <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_kind]">
                         <xsl:value-of select="concat('[', @name, ']')"/>
                 </xsl:for-each>
                 <xsl:for-each select="document($ontology_src)/concept_ontology/role[@type='Specialization' and @object=$current]">
                         <xsl:call-template name="make-list-of-already-done-members">
                                 <xsl:with-param name="current" select="@subject"/>
- <xsl:with-param name="member_type" select="$member_type"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
                         </xsl:call-template>
                 </xsl:for-each>
         </xsl:template>
 
- <xsl:template name="make-list-of-already-done-models">
+
+ <xsl:template name="find-and-mark-member-items">
                 <xsl:param name="current"/>
- <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/model">
- <xsl:value-of select="concat('[', @name, ']')"/>
- </xsl:for-each>
- <xsl:for-each select="document($ontology_src)/concept_ontology/role[@type='Specialization' and @subject=$current]">
- <xsl:call-template name="make-list-of-already-done-models">
- <xsl:with-param name="current" select="@object"/>
- </xsl:call-template>
- </xsl:for-each>
+ <xsl:param name="member_kind"/>
+
+ <xsl:choose>
+ <xsl:when test="count(document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_kind]) &gt; 0">
+ <xsl:text>X</xsl:text>
+ </xsl:when>
+ <xsl:otherwise>
+ <xsl:for-each select="document($ontology_src)/concept_ontology/role[@type='Specialization' and @object=$current]">
+ <xsl:call-template name="find-and-mark-member-items">
+ <xsl:with-param name="current" select="@subject"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:otherwise>
+ </xsl:choose>
         </xsl:template>
 
+ <xsl:template name="has-member-items">
+ <xsl:param name="concept"/>
+ <xsl:param name="member_kind"/>
+ <xsl:variable name="marks">
+ <xsl:call-template name="find-and-mark-member-items">
+ <xsl:with-param name="current" select="$concept"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
+ </xsl:call-template>
+ </xsl:variable>
+ <xsl:value-of select="string-length($marks) &gt; 0"/>
+ </xsl:template>
+
 
         <xsl:template name="make-member-items">
                 <xsl:param name="concept"/>
                 <xsl:param name="current"/>
                 <xsl:param name="already_done"/>
- <xsl:param name="member_type"/>
+ <xsl:param name="member_kind"/>
 
                 <!-- print out the typedefs of the current concept -->
- <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_type]">
+ <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_kind]">
                         <xsl:if test="not(contains($already_done, concat('[', @name, ']')))">
                         <tr>
                                 <td><code>
@@ -79,22 +99,22 @@
                                         </xsl:if>
                                 </code></td>
                                 <td><code>
- <xsl:if test="$member_type = 'member_typedef'">
+ <xsl:if test="$member_kind = 'member_typedef'">
                                                 <strong>T</strong><xsl:text>::</xsl:text>
                                         </xsl:if>
- <xsl:if test="$member_type = 'member_function'">
+ <xsl:if test="$member_kind = 'member_function'">
                                                 <strong>x</strong><xsl:text>.</xsl:text>
                                         </xsl:if>
                                         
                                         
- <xsl:if test="$member_type = 'free_function' or $member_type='metafunction'">
+ <xsl:if test="$member_kind = 'free_function' or $member_kind='metafunction'">
                                                 <xsl:if test="@namespace or @subnamespace">
                                                         <xsl:value-of select="@namespace | @subnamespace"/>
                                                         <xsl:text>::</xsl:text>
                                                 </xsl:if>
                                         </xsl:if>
                                         <xsl:value-of select="@name"/>
- <xsl:if test="$member_type = 'metafunction' or template_param">
+ <xsl:if test="$member_kind = 'metafunction' or template_param">
                                                 <xsl:text>&lt; </xsl:text>
                                                 <xsl:for-each select="metafn_param | template_param">
                                                         <xsl:variable name="templ_param_concept" select="@name"/>
@@ -121,7 +141,7 @@
                                                 </xsl:for-each>
                                                 <xsl:text> &gt;::type</xsl:text>
                                         </xsl:if>
- <xsl:if test="$member_type = 'member_function' or $member_type = 'free_function'">
+ <xsl:if test="$member_kind = 'member_function' or $member_kind = 'free_function'">
                                                 <xsl:text>(</xsl:text>
                                                 <xsl:for-each select="fn_param">
                                                         <xsl:variable name="fn_param_concept" select="@concept"/>
@@ -174,7 +194,7 @@
 
                 <xsl:variable name="new_already_done">
                         <xsl:value-of select="$already_done"/>
- <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_type]">
+ <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/*[name() = $member_kind]">
                                 <xsl:value-of select="concat('[', @name, ']')"/>
                         </xsl:for-each>
                 </xsl:variable>
@@ -190,103 +210,93 @@
                                         <xsl:for-each select="preceding-sibling::node()[@type='Specialization' and @object=$current]">
                                                 <xsl:call-template name="make-list-of-already-done-members">
                                                         <xsl:with-param name="current" select="@subject"/>
- <xsl:with-param name="member_type" select="$member_type"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
                                                 </xsl:call-template>
                                         </xsl:for-each>
                                 </xsl:with-param>
- <xsl:with-param name="member_type" select="$member_type"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
                         </xsl:call-template>
                 </xsl:for-each>
 
 
         </xsl:template>
 
+
+ <xsl:template name="make-member-item-table">
+ <xsl:param name="concept"/>
+ <xsl:param name="member_kind"/>
+ <xsl:param name="caption"/>
+ <xsl:param name="concept_column_heading"/>
+ <xsl:variable name="has_items">
+ <xsl:call-template name="has-member-items">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
+ </xsl:call-template>
+ </xsl:variable>
+
+ <xsl:if test="$has_items='true'">
+ <div class="table">
+ <p class="title"><b><xsl:value-of select="$caption"/></b></p>
+ <div class="table-contents">
+ <table class="table">
+ <tr>
+ <th><xsl:value-of select="$concept_column_heading"/></th>
+ <th>Expression</th>
+ <th>Notes</th>
+ </tr>
+ <xsl:call-template name="make-member-items">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="current" select="$concept"/>
+ <xsl:with-param name="member_kind" select="$member_kind"/>
+ </xsl:call-template>
+ </table>
+ </div>
+ </div>
+ </xsl:if>
+ </xsl:template>
+
         <!-- makes the typedef table -->
         <xsl:template name="make-typedef-table">
                 <xsl:param name="concept"/>
- <div class="table">
- <p class="title"><b>Member types</b></p>
- <div class="table-contents">
- <table class="table">
- <tr>
- <th>Concept</th>
- <th>Expression</th>
- <th>Notes</th>
- </tr>
- <xsl:call-template name="make-member-items">
- <xsl:with-param name="concept" select="$concept"/>
- <xsl:with-param name="current" select="$concept"/>
- <xsl:with-param name="member_type">member_typedef</xsl:with-param>
- </xsl:call-template>
- </table>
- </div>
- </div>
+ <xsl:call-template name="make-member-item-table">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="member_kind" select="'member_typedef'"/>
+ <xsl:with-param name="caption" select="'Member types'"/>
+ <xsl:with-param name="concept_column_heading" select="'Concept'"/>
+ </xsl:call-template>
         </xsl:template>
 
         <!-- makes the member function table -->
         <xsl:template name="make-mem-fn-table">
                 <xsl:param name="concept"/>
- <div class="table">
- <p class="title"><b>Member functions</b></p>
- <div class="table-contents">
- <table class="table">
- <tr>
- <th>Return value concept</th>
- <th>Expression</th>
- <th>Notes</th>
- </tr>
- <xsl:call-template name="make-member-items">
- <xsl:with-param name="concept" select="$concept"/>
- <xsl:with-param name="current" select="$concept"/>
- <xsl:with-param name="member_type">member_function</xsl:with-param>
- </xsl:call-template>
- </table>
- </div>
- </div>
+ <xsl:call-template name="make-member-item-table">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="member_kind" select="'member_function'"/>
+ <xsl:with-param name="caption" select="'Member functions'"/>
+ <xsl:with-param name="concept_column_heading" select="'Return value concept'"/>
+ </xsl:call-template>
         </xsl:template>
 
         <!-- makes the free function table -->
         <xsl:template name="make-free-fn-table">
                 <xsl:param name="concept"/>
- <div class="table">
- <p class="title"><b>Free functions</b></p>
- <div class="table-contents">
- <table class="table">
- <tr>
- <th>Return value concept</th>
- <th>Expression</th>
- <th>Notes</th>
- </tr>
- <xsl:call-template name="make-member-items">
- <xsl:with-param name="concept" select="$concept"/>
- <xsl:with-param name="current" select="$concept"/>
- <xsl:with-param name="member_type">free_function</xsl:with-param>
- </xsl:call-template>
- </table>
- </div>
- </div>
+ <xsl:call-template name="make-member-item-table">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="member_kind" select="'free_function'"/>
+ <xsl:with-param name="caption" select="'Free functions'"/>
+ <xsl:with-param name="concept_column_heading" select="'Return value concept'"/>
+ </xsl:call-template>
         </xsl:template>
 
         <!-- makes the metafunction function table -->
         <xsl:template name="make-meta-fn-table">
                 <xsl:param name="concept"/>
- <div class="table">
- <p class="title"><b>Metafunctions</b></p>
- <div class="table-contents">
- <table class="table">
- <tr>
- <th>Result concept</th>
- <th>Expression</th>
- <th>Notes</th>
- </tr>
- <xsl:call-template name="make-member-items">
- <xsl:with-param name="concept" select="$concept"/>
- <xsl:with-param name="current" select="$concept"/>
- <xsl:with-param name="member_type">metafunction</xsl:with-param>
- </xsl:call-template>
- </table>
- </div>
- </div>
+ <xsl:call-template name="make-member-item-table">
+ <xsl:with-param name="concept" select="$concept"/>
+ <xsl:with-param name="member_kind" select="'metafunction'"/>
+ <xsl:with-param name="caption" select="'Metafunctions'"/>
+ <xsl:with-param name="concept_column_heading" select="'Result concept'"/>
+ </xsl:call-template>
         </xsl:template>
 
         <xsl:template name="make-models-table">

Modified: sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl
==============================================================================
--- sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl (original)
+++ sandbox/mirror/doc/html/mirror/non_boost_book/concepts/xslt/make_model_list.xsl 2008-11-27 14:15:03 EST (Thu, 27 Nov 2008)
@@ -2,6 +2,19 @@
 <xsl:stylesheet version="1.0"
         xmlns:xsl="http://www.w3.org/1999/XSL/Transform"
>
+ <xsl:template name="make-list-of-already-done-models">
+ <xsl:param name="current"/>
+ <xsl:for-each select="document($ontology_src)/concept_ontology/concept[@name = $current]/model">
+ <xsl:value-of select="concat('[', @name, ']')"/>
+ </xsl:for-each>
+ <xsl:for-each select="document($ontology_src)/concept_ontology/role[@type='Specialization' and @subject=$current]">
+ <xsl:call-template name="make-list-of-already-done-models">
+ <xsl:with-param name="current" select="@object"/>
+ </xsl:call-template>
+ </xsl:for-each>
+ </xsl:template>
+
+
         <xsl:template name="make-model-list">
                 <xsl:param name="concept"/>
                 <xsl:param name="current"/>


Boost-Commit list run by bdawes at acm.org, david.abrahams at rcn.com, gregod at cs.rpi.edu, cpdaniel at pacbell.net, john at johnmaddock.co.uk