mirror of
https://github.com/smarty-php/smarty.git
synced 2025-10-26 09:51:36 +01:00
202 lines
6.1 KiB
Plaintext
Executable File
202 lines
6.1 KiB
Plaintext
Executable File
;; $Id$
|
|
;;
|
|
;; This file is part of the Modular DocBook Stylesheet distribution.
|
|
;; See ../README or http://www.berkshire.net/~norm/dsssl/
|
|
;;
|
|
|
|
;; ========================= SYNTAX DEFINITIONS =========================
|
|
|
|
(element synopsis ($verbatim-display$ %indent-synopsis-lines%
|
|
%number-synopsis-lines%))
|
|
(element cmdsynopsis ($paragraph$))
|
|
|
|
;; Support for ARG provided by James Bostock, augmented by norm
|
|
;;
|
|
|
|
(element (cmdsynopsis command)
|
|
(make sequence
|
|
(if (first-sibling? (current-node))
|
|
(empty-sosofo)
|
|
(make empty-element gi: "BR"))
|
|
(next-match)
|
|
(literal " ")))
|
|
|
|
(element group
|
|
(let ((choice (attribute-string (normalize "choice")))
|
|
(rep (attribute-string (normalize "rep")))
|
|
(sepchar (if (inherited-attribute-string (normalize "sepchar"))
|
|
(inherited-attribute-string (normalize "sepchar"))
|
|
" ")))
|
|
(make sequence
|
|
(if (equal? (absolute-child-number (current-node)) 1)
|
|
(empty-sosofo)
|
|
(literal sepchar))
|
|
(cond
|
|
((equal? choice (normalize "plain"))
|
|
(literal %arg-choice-plain-open-str%))
|
|
((equal? choice (normalize "req"))
|
|
(literal %arg-choice-req-open-str%))
|
|
((equal? choice (normalize "opt"))
|
|
(literal %arg-choice-opt-open-str%))
|
|
(else (literal %arg-choice-def-open-str%)))
|
|
(process-children)
|
|
(cond
|
|
((equal? rep (normalize "repeat"))
|
|
(literal %arg-rep-repeat-str%))
|
|
((equal? rep (normalize "norepeat"))
|
|
(literal %arg-rep-norepeat-str%))
|
|
(else (literal %arg-rep-def-str%)))
|
|
(cond
|
|
((equal? choice (normalize "plain"))
|
|
(literal %arg-choice-plain-close-str%))
|
|
((equal? choice (normalize "req"))
|
|
(literal %arg-choice-req-close-str%))
|
|
((equal? choice (normalize "opt"))
|
|
(literal %arg-choice-opt-close-str%))
|
|
(else (literal %arg-choice-def-close-str%))))))
|
|
|
|
(element arg
|
|
(let ((choice (attribute-string (normalize "choice")))
|
|
(rep (attribute-string (normalize "rep")))
|
|
(sepchar (if (inherited-attribute-string (normalize "sepchar"))
|
|
(inherited-attribute-string (normalize "sepchar"))
|
|
" ")))
|
|
(make sequence
|
|
(if (equal? (absolute-child-number (current-node)) 1)
|
|
(empty-sosofo)
|
|
(literal sepchar))
|
|
(cond
|
|
((equal? choice (normalize "plain"))
|
|
(literal %arg-choice-plain-open-str%))
|
|
((equal? choice (normalize "req")) (literal %arg-choice-req-open-str%))
|
|
((equal? choice (normalize "opt")) (literal %arg-choice-opt-open-str%))
|
|
(else (literal %arg-choice-def-open-str%)))
|
|
(process-children)
|
|
(cond
|
|
((equal? rep (normalize "repeat")) (literal %arg-rep-repeat-str%))
|
|
((equal? rep (normalize "norepeat")) (literal %arg-rep-norepeat-str%))
|
|
(else (literal %arg-rep-def-str%)))
|
|
(cond
|
|
((equal? choice (normalize "plain")) (literal %arg-choice-plain-close-str%))
|
|
((equal? choice (normalize "req")) (literal %arg-choice-req-close-str%))
|
|
((equal? choice (normalize "opt")) (literal %arg-choice-opt-close-str%))
|
|
(else (literal %arg-choice-def-close-str%))))))
|
|
|
|
|
|
(element (group arg)
|
|
(let ((choice (attribute-string (normalize "choice")))
|
|
(rep (attribute-string (normalize "rep"))))
|
|
(make sequence
|
|
(if (not (first-sibling? (current-node)))
|
|
(literal %arg-or-sep%)
|
|
(empty-sosofo))
|
|
(process-children))))
|
|
|
|
(element sbr
|
|
(make empty-element gi: "BR"))
|
|
|
|
;; ----------------------------------------------------------------------
|
|
;; Syntax highlighting...
|
|
|
|
(define (funcsynopsis-function #!optional (sosofo (process-children)))
|
|
(make element gi: "B"
|
|
attributes: '(("CLASS" "FSFUNC"))
|
|
sosofo))
|
|
|
|
(define (paramdef-parameter #!optional (sosofo (process-children)))
|
|
(make element gi: "VAR"
|
|
attributes: '(("CLASS" "PDPARAM"))
|
|
sosofo))
|
|
|
|
;; ----------------------------------------------------------------------
|
|
|
|
(element synopfragmentref
|
|
(let* ((target (element-with-id (attribute-string (normalize "linkend"))))
|
|
(snum (child-number target)))
|
|
(make element gi: "I"
|
|
(make element gi: "A"
|
|
attributes: (list
|
|
(list "HREF" (href-to target)))
|
|
(literal "(" (number->string snum) ")"))
|
|
(process-children))))
|
|
|
|
(element synopfragment
|
|
(let ((id (element-id (current-node)))
|
|
(snum (child-number (current-node))))
|
|
(make element gi: "P"
|
|
(make element gi: "A"
|
|
attributes: (list
|
|
(list "NAME" id))
|
|
(literal "(" (number->string snum) ")"))
|
|
(make entity-ref name: "nbsp")
|
|
(process-children))))
|
|
|
|
(element funcsynopsis ($informal-object$))
|
|
|
|
(element funcsynopsisinfo ($verbatim-display$ %indent-funcsynopsisinfo-lines%
|
|
%number-funcsynopsisinfo-lines%))
|
|
|
|
(element funcprototype
|
|
(let ((paramdefs (select-elements (children (current-node)) (normalize "paramdef"))))
|
|
(make sequence
|
|
(make element gi: "P"
|
|
(make element gi: "CODE"
|
|
(process-children)
|
|
(if (equal? %funcsynopsis-style% 'kr)
|
|
(with-mode kr-funcsynopsis-mode
|
|
(process-node-list paramdefs))
|
|
(empty-sosofo)))))))
|
|
|
|
(element funcdef
|
|
(make element gi: "CODE"
|
|
attributes: '(("CLASS" "FUNCDEF"))
|
|
(process-children)))
|
|
|
|
(element (funcdef function)
|
|
(if %funcsynopsis-decoration%
|
|
(funcsynopsis-function)
|
|
(process-children)))
|
|
|
|
(element void
|
|
(if (equal? %funcsynopsis-style% 'ansi)
|
|
(literal "(void);")
|
|
(literal "();")))
|
|
|
|
(element varargs (literal "(...);"))
|
|
|
|
(element paramdef
|
|
(let ((param (select-elements (children (current-node)) (normalize "parameter"))))
|
|
(make sequence
|
|
(if (equal? (child-number (current-node)) 1)
|
|
(literal "(")
|
|
(empty-sosofo))
|
|
(if (equal? %funcsynopsis-style% 'ansi)
|
|
(process-children)
|
|
(process-node-list param))
|
|
(if (equal? (gi (ifollow (current-node))) (normalize "paramdef"))
|
|
(literal ", ")
|
|
(literal ");")))))
|
|
|
|
(element (paramdef parameter)
|
|
(make sequence
|
|
(if %funcsynopsis-decoration%
|
|
(paramdef-parameter)
|
|
(process-children))
|
|
(if (equal? (gi (ifollow (current-node))) (normalize "parameter"))
|
|
(literal ", ")
|
|
(empty-sosofo))))
|
|
|
|
(element funcparams
|
|
(make sequence
|
|
(literal "(")
|
|
(process-children)
|
|
(literal ")")))
|
|
|
|
(mode kr-funcsynopsis-mode
|
|
(element paramdef
|
|
(make sequence
|
|
(make empty-element gi: "BR")
|
|
(process-children)
|
|
(literal ";"))))
|
|
|