|
Packit Service |
4c4772 |
;; $Id: dbsynop.dsl,v 1.3 2003/01/15 08:24:23 adicarlo Exp $
|
|
Packit Service |
4c4772 |
;;
|
|
Packit Service |
4c4772 |
;; This file is part of the Modular DocBook Stylesheet distribution.
|
|
Packit Service |
4c4772 |
;; See ../README or http://docbook.sourceforge.net/projects/dsssl/
|
|
Packit Service |
4c4772 |
;;
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
;; ========================= SYNTAX DEFINITIONS =========================
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element synopsis ($verbatim-display$ %indent-synopsis-lines%
|
|
Packit Service |
4c4772 |
%number-synopsis-lines%))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element cmdsynopsis
|
|
Packit Service |
4c4772 |
;; Can't be an $informal-object$ because it needs the paragraph
|
|
Packit Service |
4c4772 |
;; wrapper around process-children
|
|
Packit Service |
4c4772 |
(make display-group
|
|
Packit Service |
4c4772 |
start-indent: (+ %block-start-indent% (inherited-start-indent))
|
|
Packit Service |
4c4772 |
space-before: %block-sep%
|
|
Packit Service |
4c4772 |
space-after: %block-sep%
|
|
Packit Service |
4c4772 |
(make paragraph
|
|
Packit Service |
4c4772 |
(process-children))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
;; Support for ARG provided by James Bostock, augmented by norm
|
|
Packit Service |
4c4772 |
;;
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element (cmdsynopsis command)
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(if (first-sibling? (current-node))
|
|
Packit Service |
4c4772 |
(empty-sosofo)
|
|
Packit Service |
4c4772 |
(make paragraph-break))
|
|
Packit Service |
4c4772 |
(next-match)
|
|
Packit Service |
4c4772 |
(literal " ")))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element group
|
|
Packit Service |
4c4772 |
(let ((choice (attribute-string (normalize "choice")))
|
|
Packit Service |
4c4772 |
(rep (attribute-string (normalize "rep")))
|
|
Packit Service |
4c4772 |
(sepchar (if (inherited-attribute-string (normalize "sepchar"))
|
|
Packit Service |
4c4772 |
(inherited-attribute-string (normalize "sepchar"))
|
|
Packit Service |
4c4772 |
" ")))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(if (equal? (absolute-child-number (current-node)) 1)
|
|
Packit Service |
4c4772 |
(empty-sosofo)
|
|
Packit Service |
4c4772 |
(literal sepchar))
|
|
Packit Service |
4c4772 |
(cond
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "plain")) (literal %arg-choice-plain-open-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "req")) (literal %arg-choice-req-open-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "opt")) (literal %arg-choice-opt-open-str%))
|
|
Packit Service |
4c4772 |
(else (literal %arg-choice-def-open-str%)))
|
|
Packit Service |
4c4772 |
(process-children)
|
|
Packit Service |
4c4772 |
(cond
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "plain")) (literal %arg-choice-plain-close-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "req")) (literal %arg-choice-req-close-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "opt")) (literal %arg-choice-opt-close-str%))
|
|
Packit Service |
4c4772 |
(else (literal %arg-choice-def-close-str%)))
|
|
Packit Service |
4c4772 |
(cond
|
|
Packit Service |
4c4772 |
((equal? rep (normalize "repeat")) (literal %arg-rep-repeat-str%))
|
|
Packit Service |
4c4772 |
((equal? rep (normalize "norepeat")) (literal %arg-rep-norepeat-str%))
|
|
Packit Service |
4c4772 |
(else (literal %arg-rep-def-str%))))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element arg
|
|
Packit Service |
4c4772 |
(let ((choice (attribute-string (normalize "choice")))
|
|
Packit Service |
4c4772 |
(rep (attribute-string (normalize "rep")))
|
|
Packit Service |
4c4772 |
(sepchar (if (inherited-attribute-string (normalize "sepchar"))
|
|
Packit Service |
4c4772 |
(inherited-attribute-string (normalize "sepchar"))
|
|
Packit Service |
4c4772 |
" ")))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(if (equal? (absolute-child-number (current-node)) 1)
|
|
Packit Service |
4c4772 |
(empty-sosofo)
|
|
Packit Service |
4c4772 |
(literal sepchar))
|
|
Packit Service |
4c4772 |
(cond
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "plain")) (literal %arg-choice-plain-open-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "req")) (literal %arg-choice-req-open-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "opt")) (literal %arg-choice-opt-open-str%))
|
|
Packit Service |
4c4772 |
(else (literal %arg-choice-def-open-str%)))
|
|
Packit Service |
4c4772 |
(process-children)
|
|
Packit Service |
4c4772 |
(cond
|
|
Packit Service |
4c4772 |
((equal? rep (normalize "repeat")) (literal %arg-rep-repeat-str%))
|
|
Packit Service |
4c4772 |
((equal? rep (normalize "norepeat")) (literal %arg-rep-norepeat-str%))
|
|
Packit Service |
4c4772 |
(else (literal %arg-rep-def-str%)))
|
|
Packit Service |
4c4772 |
(cond
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "plain")) (literal %arg-choice-plain-close-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "req")) (literal %arg-choice-req-close-str%))
|
|
Packit Service |
4c4772 |
((equal? choice (normalize "opt")) (literal %arg-choice-opt-close-str%))
|
|
Packit Service |
4c4772 |
(else (literal %arg-choice-def-close-str%))))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element (group arg)
|
|
Packit Service |
4c4772 |
(let ((choice (attribute-string (normalize "choice")))
|
|
Packit Service |
4c4772 |
(rep (attribute-string (normalize "rep"))))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(if (not (first-sibling? (current-node)))
|
|
Packit Service |
4c4772 |
(literal %arg-or-sep%)
|
|
Packit Service |
4c4772 |
(empty-sosofo))
|
|
Packit Service |
4c4772 |
(process-children))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element sbr
|
|
Packit Service |
4c4772 |
(make paragraph-break))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
;; ----------------------------------------------------------------------
|
|
Packit Service |
4c4772 |
;; Syntax highlighting...
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(define (funcsynopsis-function #!optional (sosofo (process-children)))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
font-weight: 'bold
|
|
Packit Service |
4c4772 |
sosofo))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(define (paramdef-parameter #!optional (sosofo (process-children)))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
font-posture: 'italic
|
|
Packit Service |
4c4772 |
sosofo))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
;; ----------------------------------------------------------------------
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element synopfragmentref
|
|
Packit Service |
4c4772 |
(let* ((target (element-with-id (attribute-string (normalize "linkend"))))
|
|
Packit Service |
4c4772 |
(snum (child-number target)))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
font-posture: 'italic
|
|
Packit Service |
4c4772 |
(make link
|
|
Packit Service |
4c4772 |
destination: (node-list-address target)
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
font-posture: 'upright
|
|
Packit Service |
4c4772 |
($callout-bug$ snum)))
|
|
Packit Service |
4c4772 |
(process-children))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element synopfragment
|
|
Packit Service |
4c4772 |
(let ((snum (child-number (current-node))))
|
|
Packit Service |
4c4772 |
(make paragraph
|
|
Packit Service |
4c4772 |
($callout-bug$ snum)
|
|
Packit Service |
4c4772 |
(literal " ")
|
|
Packit Service |
4c4772 |
(process-children))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element funcsynopsis
|
|
Packit Service |
4c4772 |
(let* ((width-in-chars (if (attribute-string "width")
|
|
Packit Service |
4c4772 |
(string->number (attribute-string "width"))
|
|
Packit Service |
4c4772 |
%verbatim-default-width%))
|
|
Packit Service |
4c4772 |
(fsize (lambda () (if (or (attribute-string (normalize "width"))
|
|
Packit Service |
4c4772 |
(not %verbatim-size-factor%))
|
|
Packit Service |
4c4772 |
(/ (/ (- %text-width% (inherited-start-indent))
|
|
Packit Service |
4c4772 |
width-in-chars)
|
|
Packit Service |
4c4772 |
0.7)
|
|
Packit Service |
4c4772 |
(* (inherited-font-size)
|
|
Packit Service |
4c4772 |
%verbatim-size-factor%)))))
|
|
Packit Service |
4c4772 |
;; This used to be a sequence, but that caused the start-indent to be
|
|
Packit Service |
4c4772 |
;; wrong when it was the first element of a RefSect. Making it a
|
|
Packit Service |
4c4772 |
;; paragraph makes the bug go away and doesn't seem to have any ill
|
|
Packit Service |
4c4772 |
;; effects. Need to investigate further...
|
|
Packit Service |
4c4772 |
(make paragraph
|
|
Packit Service |
4c4772 |
font-family-name: %mono-font-family%
|
|
Packit Service |
4c4772 |
font-size: (fsize)
|
|
Packit Service |
4c4772 |
font-weight: 'medium
|
|
Packit Service |
4c4772 |
font-posture: 'upright
|
|
Packit Service |
4c4772 |
line-spacing: (* (fsize) %line-spacing-factor%)
|
|
Packit Service |
4c4772 |
($informal-object$))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element funcsynopsisinfo
|
|
Packit Service |
4c4772 |
;; Fake out the font-size so that when verbatim-display calculates the
|
|
Packit Service |
4c4772 |
;; verbatim-size-factor it doesn't get squared. This will fail if the
|
|
Packit Service |
4c4772 |
;; "correct" size isn't bfsize, but what can I do?
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
font-size: %bf-size%
|
|
Packit Service |
4c4772 |
($verbatim-display$ %indent-funcsynopsisinfo-lines%
|
|
Packit Service |
4c4772 |
%number-funcsynopsisinfo-lines%)))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element funcprototype
|
|
Packit Service |
4c4772 |
(let ((paramdefs (select-elements (children (current-node))
|
|
Packit Service |
4c4772 |
(normalize "paramdef"))))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(make paragraph
|
|
Packit Service |
4c4772 |
font-family-name: %mono-font-family%
|
|
Packit Service |
4c4772 |
(process-children))
|
|
Packit Service |
4c4772 |
(if (equal? %funcsynopsis-style% 'kr)
|
|
Packit Service |
4c4772 |
(with-mode kr-funcsynopsis-mode
|
|
Packit Service |
4c4772 |
(process-node-list paramdefs))
|
|
Packit Service |
4c4772 |
(empty-sosofo)))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element funcdef (process-children))
|
|
Packit Service |
4c4772 |
(element (funcdef function)
|
|
Packit Service |
4c4772 |
(if %funcsynopsis-decoration%
|
|
Packit Service |
4c4772 |
(funcsynopsis-function)
|
|
Packit Service |
4c4772 |
(process-children)))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element void
|
|
Packit Service |
4c4772 |
(if (equal? %funcsynopsis-style% 'ansi)
|
|
Packit Service |
4c4772 |
(literal "(void);")
|
|
Packit Service |
4c4772 |
(literal "();")))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element varargs (literal "(...);"))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element paramdef
|
|
Packit Service |
4c4772 |
(let ((param (select-elements (children (current-node)) (normalize "parameter"))))
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(if (equal? (child-number (current-node)) 1)
|
|
Packit Service |
4c4772 |
(literal "(")
|
|
Packit Service |
4c4772 |
(empty-sosofo))
|
|
Packit Service |
4c4772 |
(if (equal? %funcsynopsis-style% 'ansi)
|
|
Packit Service |
4c4772 |
(process-children)
|
|
Packit Service |
4c4772 |
(process-node-list param))
|
|
Packit Service |
4c4772 |
(if (equal? (gi (ifollow (current-node))) (normalize "paramdef"))
|
|
Packit Service |
4c4772 |
(literal ", ")
|
|
Packit Service |
4c4772 |
(literal ");")))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element (paramdef parameter)
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(if %funcsynopsis-decoration%
|
|
Packit Service |
4c4772 |
(paramdef-parameter)
|
|
Packit Service |
4c4772 |
(process-children))
|
|
Packit Service |
4c4772 |
(if (equal? (gi (ifollow (current-node))) (normalize "parameter"))
|
|
Packit Service |
4c4772 |
(literal ", ")
|
|
Packit Service |
4c4772 |
(empty-sosofo))))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(element funcparams
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(literal "(")
|
|
Packit Service |
4c4772 |
(process-children)
|
|
Packit Service |
4c4772 |
(literal ")")))
|
|
Packit Service |
4c4772 |
|
|
Packit Service |
4c4772 |
(mode kr-funcsynopsis-mode
|
|
Packit Service |
4c4772 |
(element paramdef
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(make paragraph
|
|
Packit Service |
4c4772 |
font-family-name: %mono-font-family%
|
|
Packit Service |
4c4772 |
start-indent: (+ (inherited-start-indent) %kr-funcsynopsis-indent%)
|
|
Packit Service |
4c4772 |
(make sequence
|
|
Packit Service |
4c4772 |
(process-children)
|
|
Packit Service |
4c4772 |
(literal ";"))))))
|