cvs: phpdoc(dev_docbook4) / common.dsl.in html-common.dsl print.dsl.in
| From: | Hartmut Holzgraefe | Date: | Tue, 13 Nov 2001 04:47:49 +0000 |
| Subject: | cvs: phpdoc(dev_docbook4) / common.dsl.in html-common.dsl print.dsl.in | ||
| Groups: | php.doc | ||
| Request: | Send a blank email to phpdoc+get-969338801@lists.php.net to get a copy of this message | ||
hholzgra Mon Nov 12 23:47:49 2001 EDT
Modified files: (Branch: dev_docbook4)
/phpdoc html-common.dsl common.dsl.in print.dsl.in
Log:
new optional parameter rendering for docbook 4 methodsynopsis
Index: phpdoc/html-common.dsl diff -u phpdoc/html-common.dsl:1.17.2.1 phpdoc/html-common.dsl:1.17.2.2 --- phpdoc/html-common.dsl:1.17.2.1 Sun Nov 11 18:54:51 2001 +++ phpdoc/html-common.dsl Mon Nov 12 23:47:49 2001 @@ -1,6 +1,6 @@ ;; -*- Scheme -*- ;; -;; $Id: html-common.dsl,v 1.17.2.1 2001/11/11 23:54:51 hholzgra Exp $ +;; $Id: html-common.dsl,v 1.17.2.2 2001/11/13 04:47:49 hholzgra Exp $ ;; ;; Returns the depth of the auto-generated TOC (table of @@ -21,130 +21,6 @@ ) -(define (is-true-optional nl) - (and (equal? (gi (parent nl)) (normalize "parameter")) - (equal? 0 (string-length (strip (data (preced nl))))) - (equal? 0 (string-length (strip (data (follow nl))))) - ) - ) - - -(define (has-true-optional nl) - (is-true-optional - (node-list-first-element - (select-elements - (descendants nl) - (normalize "optional")) - ) - ) - ) - - -(define (count-true-optionals nl) - (let loop - ((result 0) - (nl (select-elements (descendants nl) (normalize "optional"))) - ) - (if(node-list-empty? nl) - result - (if(is-true-optional(node-list-first nl)) - (loop (+ result 1) (node-list-rest nl)) - (loop result (node-list-rest nl)) - ) - ) - ) - ) - - -;; There are two different kinds of optionals -;; optional parameters and optional parameter parts. -;; An optional parameter is identified by an optional tag -;; with a parameter tag as its parent -;; and only whitespace between them -(element optional - ;;check for true optional parameter - (if (is-true-optional (current-node)) - ;; yes - handle '[...]' in paramdef - (process-children-trim) - ;; no - do '[...]' output - (make sequence - (literal %arg-choice-opt-open-str%) - (process-children-trim) - (literal %arg-choice-opt-close-str%) - ) - ) - ) - -;; Print out parameters in italic -(element (paramdef parameter) - (make sequence - font-posture: 'italic - (process-children-trim) - ) - ) - -;; Now this is going to be tricky -(element paramdef - (make sequence - ;; special treatment for first parameter in funcsynopsis - (if (equal? (child-number (current-node)) 1) - ;; is first ? - (make sequence - ;; start parameter list - (literal " (") - ;; is optional ? - ( if (has-true-optional (current-node)) - (literal %arg-choice-opt-open-str%) - (empty-sosofo) - ) - ) - ;; not first - (empty-sosofo) - ) - - ;; - (process-children-trim) - - ;; special treatment for last parameter - (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) - ;; more parameters will follow - (make sequence - ;; next is optional ? - ( if (has-true-optional (ifollow (current-node))) - ;; optional - (make sequence - (literal " ") - (literal %arg-choice-opt-open-str%) - ) - ;; not optional - (empty-sosofo) - ) - (literal ", " ) - ) - ;; last parameter - (make sequence - (literal - (let loop ((result "")(count (count-true-optionals (parent (current-node))))) - (if (<= count 0) - result - (loop (string-append result %arg-choice-opt-close-str%)(- count 1)) - ) - ) - ) - ( literal ")" ) - ) - ) - ) - ) - - -;; How to print out void in a funcprototype -(element (funcprototype void) - (make sequence ( literal " (void)" ))) - -;; How to print out varargs in a funcprototype -(element (funcprototype varargs) - (make sequence ( literal " (...)" ))) ;; Linking types to the correct place @@ -390,57 +266,6 @@ (para-check 'restart))))) - -(element methodsynopsis - (make sequence (process-children) (literal ")")) -) - -(element (methodsynopsis type) - (make sequence - (process-children-trim) - (literal " ") - ) -) - -(element (methodsynopsis methodname) - (make sequence - ($bold-seq$ - (process-children-trim) - ) - (literal " (") - ) - ) - -(element (methodsynopsis methodparam) - (make sequence - (if (equal? (attribute-string (normalize "choice")) "opt") - (literal "[") - (empty-sosofo) - ) - (process-children-trim) - (if (equal? (attribute-string (normalize "choice")) "opt") - (literal "]") - (empty-sosofo) - ) - (if (equal? (gi (ifollow (current-node))) (normalize "methodparam")) - (literal ", ") - (empty-sosofo) - ) - ) - ) - -(element (methodparam type) - (make sequence - (process-children-trim) - (literal " ") - ) - ) - -(element (methodparam parameter) - (make sequence - (process-children-trim) - ) - ) ;; vim: ts=2 sw=2 et Index: phpdoc/common.dsl.in diff -u phpdoc/common.dsl.in:1.16 phpdoc/common.dsl.in:1.16.2.1 --- phpdoc/common.dsl.in:1.16 Tue Oct 30 08:33:10 2001 +++ phpdoc/common.dsl.in Mon Nov 12 23:47:49 2001 @@ -1,6 +1,6 @@ ;; -*- Scheme -*- ;; -;; $Id: common.dsl.in,v 1.16 2001/10/30 13:33:10 leszek Exp $ +;; $Id: common.dsl.in,v 1.16.2.1 2001/11/13 04:47:49 hholzgra Exp $ ;; ;; This file contains stylesheet customization common to the HTML ;; and print versions. @@ -114,4 +114,107 @@ (normalize "copyright") (normalize "abstract") (normalize "legalnotice"))) + + + + + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; +;;;; render function prototypes, esp. with optional arguments +;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; helper function generating closing optional brackets +(define (methodsynopsis-generate-closing-optionals nl) + (if (node-list-empty? nl) + (empty-sosofo) ;; empty list -> do nothing + (make sequence ;; process list node + (if (attribute-string (normalize "choice") (node-list-first nl)) + (if (string=? "opt" (attribute-string (normalize "choice") (node-list-first nl))) + (literal %arg-choice-opt-close-str%) ;; is optional parameter -> close a bracket + (empty-sosofo) + ) + (empty-sosofo) + ) + (methodsynopsis-generate-closing-optionals (node-list-rest nl)) ;; process rest of list + ) + ) + ) + +;; render methodsynopsis +(element methodsynopsis + (make sequence + (process-children) ;; render content + (methodsynopsis-generate-closing-optionals (children (current-node))) ;; close optional brackets + (literal ")") ;; close parameter list + ) +) + +;; render return type +(element (methodsynopsis type) + (make sequence + (process-children-trim) + (literal " ") + ) +) + +;; render function name +(element (methodsynopsis methodname) + (make sequence + ($bold-seq$ + (process-children-trim) + ) + (literal " ( ") ;; start parameter list + ) + ) + +;; render parameters +(element (methodsynopsis methodparam) + (make sequence + ;; special case -> first parameter is optional + (if (equal? (gi (ipreced (current-node))) (normalize "methodparam")) + (empty-sosofo) ;; have prev. parameters -> is not first + (if (equal? (attribute-string (normalize "choice")) "opt") + (literal %arg-choice-opt-open-str%) ;; generate opening bracket + (empty-sosofo) + ) + ) + + (process-children-trim) + + ;; have more parameters following me? + (if (equal? (gi (ifollow (current-node))) (normalize "methodparam")) + (make sequence + ;; is next parameter optional? + (if (equal? (attribute-string (normalize "choice") (ifollow (current-node))) "opt") + (make sequence + (literal " ") + (literal %arg-choice-opt-open-str%) + ) + (empty-sosofo) + ) + ;; parameter list separator + (literal ", ") + ) + (empty-sosofo) + ) + ) + ) + +;; render parameter type +(element (methodparam type) + (make sequence + (process-children-trim) + (literal " ") + ) + ) + +;; render parameter name +(element (methodparam parameter) + (make sequence + (process-children-trim) + ) + ) Index: phpdoc/print.dsl.in diff -u phpdoc/print.dsl.in:1.17 phpdoc/print.dsl.in:1.17.2.1 --- phpdoc/print.dsl.in:1.17 Sat Oct 13 14:51:17 2001 +++ phpdoc/print.dsl.in Mon Nov 12 23:47:49 2001 @@ -7,7 +7,7 @@ <!-- - $Id: print.dsl.in,v 1.17 2001/10/13 18:51:17 jimw Exp $ + $Id: print.dsl.in,v 1.17.2.1 2001/11/13 04:47:49 hholzgra Exp $ This file contains printout-specific stylesheet customization. @@ -183,125 +183,13 @@ -;; there are two different kinds of optionals -;; optional parameters and optional parameter parts -;; an optional parameter is identified by an optional tag -;; with a parameter tag as its parent -;; and only whitespace between them -(define (is-true-optional nl) - (and (equal? (gi (parent nl)) (normalize "parameter")) - (equal? 0 (string-length (strip (data (preced nl))))) - (equal? 0 (string-length (strip (data (follow nl))))) - ) - ) - -(define (has-true-optional nl) - (is-true-optional - (node-list-first-element - (select-elements - (descendants nl) - (normalize "optional")) - ) - ) - ) - - -(define (count-true-optionals nl) - (let loop - ((result 0) - (nl (select-elements (descendants nl) (normalize "optional"))) - ) - (if(node-list-empty? nl) - result - (if(is-true-optional(node-list-first nl)) - (loop (+ result 1) (node-list-rest nl)) - (loop result (node-list-rest nl)) - ) - ) - ) - ) - - -(element optional - ;;check for true optional parameter - (if (is-true-optional (current-node)) - ;; yes - handle '[...]' in paramdef - (process-children-trim) - ;; no - do '[...]' output - (make sequence - (literal %arg-choice-opt-open-str%) - (process-children-trim) - (literal %arg-choice-opt-close-str%) - ) - ) - ) - -(element (paramdef parameter) +(element (metodparam parameter) (make sequence font-posture: 'italic (process-children-trim) ) ) -;; now this is going to be tricky -(element paramdef - (make sequence - ;; special treatment for first parameter in funcsynopsis - (if (equal? (child-number (current-node)) 1) - ;; is first ? - (make sequence - ;; start parameter list - (literal " (") - ;; is optional ? - ( if (has-true-optional (current-node)) - (literal %arg-choice-opt-open-str%) - (empty-sosofo) - ) - ) - ;; not first - (empty-sosofo) - ) - - ;; - (process-children-trim) - - ;; special treatment for last parameter - (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) - ;; more parameters will follow - (make sequence - ;; next is optional ? - ( if (has-true-optional (ifollow (current-node))) - ;; optional - (make sequence - (literal " ") - (literal %arg-choice-opt-open-str%) - ) - ;; not optional - (empty-sosofo) - ) - (literal ", " ) - ) - ;; last parameter - (make sequence - (literal - (let loop ((result "")(count (count-true-optionals (parent (current-node))))) - (if (<= count 0) - result - (loop (string-append result %arg-choice-opt-close-str%)(- count 1)) - ) - ) - ) - ( literal ")" ) - ) - ) - ) - ) - -(element (funcprototype void) - (make sequence ( literal " ()" ))) - - (element (funcprototype varargs) - (make sequence ( literal " (...)" ))) (element function (let* ((function-name (data (current-node)))
Index: phpdoc/html-common.dsl diff -u phpdoc/html-common.dsl:1.17.2.1 phpdoc/html-common.dsl:1.17.2.2 --- phpdoc/html-common.dsl:1.17.2.1 Sun Nov 11 18:54:51 2001 +++ phpdoc/html-common.dsl Mon Nov 12 23:47:49 2001 @@ -1,6 +1,6 @@ ;; -*- Scheme -*- ;; -;; $Id: html-common.dsl,v 1.17.2.1 2001/11/11 23:54:51 hholzgra Exp $ +;; $Id: html-common.dsl,v 1.17.2.2 2001/11/13 04:47:49 hholzgra Exp $ ;; ;; Returns the depth of the auto-generated TOC (table of @@ -21,130 +21,6 @@ ) -(define (is-true-optional nl) - (and (equal? (gi (parent nl)) (normalize "parameter")) - (equal? 0 (string-length (strip (data (preced nl))))) - (equal? 0 (string-length (strip (data (follow nl))))) - ) - ) - - -(define (has-true-optional nl) - (is-true-optional - (node-list-first-element - (select-elements - (descendants nl) - (normalize "optional")) - ) - ) - ) - - -(define (count-true-optionals nl) - (let loop - ((result 0) - (nl (select-elements (descendants nl) (normalize "optional"))) - ) - (if(node-list-empty? nl) - result - (if(is-true-optional(node-list-first nl)) - (loop (+ result 1) (node-list-rest nl)) - (loop result (node-list-rest nl)) - ) - ) - ) - ) - - -;; There are two different kinds of optionals -;; optional parameters and optional parameter parts. -;; An optional parameter is identified by an optional tag -;; with a parameter tag as its parent -;; and only whitespace between them -(element optional - ;;check for true optional parameter - (if (is-true-optional (current-node)) - ;; yes - handle '[...]' in paramdef - (process-children-trim) - ;; no - do '[...]' output - (make sequence - (literal %arg-choice-opt-open-str%) - (process-children-trim) - (literal %arg-choice-opt-close-str%) - ) - ) - ) - -;; Print out parameters in italic -(element (paramdef parameter) - (make sequence - font-posture: 'italic - (process-children-trim) - ) - ) - -;; Now this is going to be tricky -(element paramdef - (make sequence - ;; special treatment for first parameter in funcsynopsis - (if (equal? (child-number (current-node)) 1) - ;; is first ? - (make sequence - ;; start parameter list - (literal " (") - ;; is optional ? - ( if (has-true-optional (current-node)) - (literal %arg-choice-opt-open-str%) - (empty-sosofo) - ) - ) - ;; not first - (empty-sosofo) - ) - - ;; - (process-children-trim) - - ;; special treatment for last parameter - (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) - ;; more parameters will follow - (make sequence - ;; next is optional ? - ( if (has-true-optional (ifollow (current-node))) - ;; optional - (make sequence - (literal " ") - (literal %arg-choice-opt-open-str%) - ) - ;; not optional - (empty-sosofo) - ) - (literal ", " ) - ) - ;; last parameter - (make sequence - (literal - (let loop ((result "")(count (count-true-optionals (parent (current-node))))) - (if (<= count 0) - result - (loop (string-append result %arg-choice-opt-close-str%)(- count 1)) - ) - ) - ) - ( literal ")" ) - ) - ) - ) - ) - - -;; How to print out void in a funcprototype -(element (funcprototype void) - (make sequence ( literal " (void)" ))) - -;; How to print out varargs in a funcprototype -(element (funcprototype varargs) - (make sequence ( literal " (...)" ))) ;; Linking types to the correct place @@ -390,57 +266,6 @@ (para-check 'restart))))) - -(element methodsynopsis - (make sequence (process-children) (literal ")")) -) - -(element (methodsynopsis type) - (make sequence - (process-children-trim) - (literal " ") - ) -) - -(element (methodsynopsis methodname) - (make sequence - ($bold-seq$ - (process-children-trim) - ) - (literal " (") - ) - ) - -(element (methodsynopsis methodparam) - (make sequence - (if (equal? (attribute-string (normalize "choice")) "opt") - (literal "[") - (empty-sosofo) - ) - (process-children-trim) - (if (equal? (attribute-string (normalize "choice")) "opt") - (literal "]") - (empty-sosofo) - ) - (if (equal? (gi (ifollow (current-node))) (normalize "methodparam")) - (literal ", ") - (empty-sosofo) - ) - ) - ) - -(element (methodparam type) - (make sequence - (process-children-trim) - (literal " ") - ) - ) - -(element (methodparam parameter) - (make sequence - (process-children-trim) - ) - ) ;; vim: ts=2 sw=2 et Index: phpdoc/common.dsl.in diff -u phpdoc/common.dsl.in:1.16 phpdoc/common.dsl.in:1.16.2.1 --- phpdoc/common.dsl.in:1.16 Tue Oct 30 08:33:10 2001 +++ phpdoc/common.dsl.in Mon Nov 12 23:47:49 2001 @@ -1,6 +1,6 @@ ;; -*- Scheme -*- ;; -;; $Id: common.dsl.in,v 1.16 2001/10/30 13:33:10 leszek Exp $ +;; $Id: common.dsl.in,v 1.16.2.1 2001/11/13 04:47:49 hholzgra Exp $ ;; ;; This file contains stylesheet customization common to the HTML ;; and print versions. @@ -114,4 +114,107 @@ (normalize "copyright") (normalize "abstract") (normalize "legalnotice"))) + + + + + + +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; +;;;; +;;;; render function prototypes, esp. with optional arguments +;;;; +;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;; + +;; helper function generating closing optional brackets +(define (methodsynopsis-generate-closing-optionals nl) + (if (node-list-empty? nl) + (empty-sosofo) ;; empty list -> do nothing + (make sequence ;; process list node + (if (attribute-string (normalize "choice") (node-list-first nl)) + (if (string=? "opt" (attribute-string (normalize "choice") (node-list-first nl))) + (literal %arg-choice-opt-close-str%) ;; is optional parameter -> close a bracket + (empty-sosofo) + ) + (empty-sosofo) + ) + (methodsynopsis-generate-closing-optionals (node-list-rest nl)) ;; process rest of list + ) + ) + ) + +;; render methodsynopsis +(element methodsynopsis + (make sequence + (process-children) ;; render content + (methodsynopsis-generate-closing-optionals (children (current-node))) ;; close optional brackets + (literal ")") ;; close parameter list + ) +) + +;; render return type +(element (methodsynopsis type) + (make sequence + (process-children-trim) + (literal " ") + ) +) + +;; render function name +(element (methodsynopsis methodname) + (make sequence + ($bold-seq$ + (process-children-trim) + ) + (literal " ( ") ;; start parameter list + ) + ) + +;; render parameters +(element (methodsynopsis methodparam) + (make sequence + ;; special case -> first parameter is optional + (if (equal? (gi (ipreced (current-node))) (normalize "methodparam")) + (empty-sosofo) ;; have prev. parameters -> is not first + (if (equal? (attribute-string (normalize "choice")) "opt") + (literal %arg-choice-opt-open-str%) ;; generate opening bracket + (empty-sosofo) + ) + ) + + (process-children-trim) + + ;; have more parameters following me? + (if (equal? (gi (ifollow (current-node))) (normalize "methodparam")) + (make sequence + ;; is next parameter optional? + (if (equal? (attribute-string (normalize "choice") (ifollow (current-node))) "opt") + (make sequence + (literal " ") + (literal %arg-choice-opt-open-str%) + ) + (empty-sosofo) + ) + ;; parameter list separator + (literal ", ") + ) + (empty-sosofo) + ) + ) + ) + +;; render parameter type +(element (methodparam type) + (make sequence + (process-children-trim) + (literal " ") + ) + ) + +;; render parameter name +(element (methodparam parameter) + (make sequence + (process-children-trim) + ) + ) Index: phpdoc/print.dsl.in diff -u phpdoc/print.dsl.in:1.17 phpdoc/print.dsl.in:1.17.2.1 --- phpdoc/print.dsl.in:1.17 Sat Oct 13 14:51:17 2001 +++ phpdoc/print.dsl.in Mon Nov 12 23:47:49 2001 @@ -7,7 +7,7 @@ <!-- - $Id: print.dsl.in,v 1.17 2001/10/13 18:51:17 jimw Exp $ + $Id: print.dsl.in,v 1.17.2.1 2001/11/13 04:47:49 hholzgra Exp $ This file contains printout-specific stylesheet customization. @@ -183,125 +183,13 @@ -;; there are two different kinds of optionals -;; optional parameters and optional parameter parts -;; an optional parameter is identified by an optional tag -;; with a parameter tag as its parent -;; and only whitespace between them -(define (is-true-optional nl) - (and (equal? (gi (parent nl)) (normalize "parameter")) - (equal? 0 (string-length (strip (data (preced nl))))) - (equal? 0 (string-length (strip (data (follow nl))))) - ) - ) - -(define (has-true-optional nl) - (is-true-optional - (node-list-first-element - (select-elements - (descendants nl) - (normalize "optional")) - ) - ) - ) - - -(define (count-true-optionals nl) - (let loop - ((result 0) - (nl (select-elements (descendants nl) (normalize "optional"))) - ) - (if(node-list-empty? nl) - result - (if(is-true-optional(node-list-first nl)) - (loop (+ result 1) (node-list-rest nl)) - (loop result (node-list-rest nl)) - ) - ) - ) - ) - - -(element optional - ;;check for true optional parameter - (if (is-true-optional (current-node)) - ;; yes - handle '[...]' in paramdef - (process-children-trim) - ;; no - do '[...]' output - (make sequence - (literal %arg-choice-opt-open-str%) - (process-children-trim) - (literal %arg-choice-opt-close-str%) - ) - ) - ) - -(element (paramdef parameter) +(element (metodparam parameter) (make sequence font-posture: 'italic (process-children-trim) ) ) -;; now this is going to be tricky -(element paramdef - (make sequence - ;; special treatment for first parameter in funcsynopsis - (if (equal? (child-number (current-node)) 1) - ;; is first ? - (make sequence - ;; start parameter list - (literal " (") - ;; is optional ? - ( if (has-true-optional (current-node)) - (literal %arg-choice-opt-open-str%) - (empty-sosofo) - ) - ) - ;; not first - (empty-sosofo) - ) - - ;; - (process-children-trim) - - ;; special treatment for last parameter - (if (equal? (gi (ifollow (current-node))) (normalize "paramdef")) - ;; more parameters will follow - (make sequence - ;; next is optional ? - ( if (has-true-optional (ifollow (current-node))) - ;; optional - (make sequence - (literal " ") - (literal %arg-choice-opt-open-str%) - ) - ;; not optional - (empty-sosofo) - ) - (literal ", " ) - ) - ;; last parameter - (make sequence - (literal - (let loop ((result "")(count (count-true-optionals (parent (current-node))))) - (if (<= count 0) - result - (loop (string-append result %arg-choice-opt-close-str%)(- count 1)) - ) - ) - ) - ( literal ")" ) - ) - ) - ) - ) - -(element (funcprototype void) - (make sequence ( literal " ()" ))) - - (element (funcprototype varargs) - (make sequence ( literal " (...)" ))) (element function (let* ((function-name (data (current-node)))