mirror of
				https://github.com/smarty-php/smarty.git
				synced 2025-11-03 22:01:36 +01:00 
			
		
		
		
	
		
			
	
	
		
			825 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
		
		
			
		
	
	
			825 lines
		
	
	
		
			22 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
| 
								 | 
							
								;; $Id$
							 | 
						||
| 
								 | 
							
								;;
							 | 
						||
| 
								 | 
							
								;; This file is part of the Modular DocBook Stylesheet distribution.
							 | 
						||
| 
								 | 
							
								;; See ../README or http://www.berkshire.net/~norm/dsssl/
							 | 
						||
| 
								 | 
							
								;;
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; ============================ CLASS SYNOPSIS =============================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define %indent-classsynopsisinfo-lines% #f)
							 | 
						||
| 
								 | 
							
								(define %number-classsynopsisinfo-lines% #f)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define %default-classsynopsis-language% "java")
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsis
							 | 
						||
| 
								 | 
							
								  (let ((language (if (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      %default-classsynopsis-language%)))
							 | 
						||
| 
								 | 
							
								    (case language
							 | 
						||
| 
								 | 
							
								      (("java") (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("perl") (with-mode cs-perl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("idl") (with-mode cs-idl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("cpp") (with-mode cs-cpp-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("python") (with-mode cs-python-mode
							 | 
						||
| 
								 | 
							
										    (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (else (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
									      (process-node-list (current-node)))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodsynopsis
							 | 
						||
| 
								 | 
							
								  (let ((language (if (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      %default-classsynopsis-language%)))
							 | 
						||
| 
								 | 
							
								    (case language
							 | 
						||
| 
								 | 
							
								      (("java") (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("perl") (with-mode cs-perl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("idl") (with-mode cs-idl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("cpp") (with-mode cs-cpp-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("python") (with-mode cs-python-mode
							 | 
						||
| 
								 | 
							
										    (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (else (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
									      (process-node-list (current-node)))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element fieldsynopsis
							 | 
						||
| 
								 | 
							
								  (let ((language (if (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      %default-classsynopsis-language%)))
							 | 
						||
| 
								 | 
							
								    (case language
							 | 
						||
| 
								 | 
							
								      (("java") (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("perl") (with-mode cs-perl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("idl") (with-mode cs-idl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("cpp") (with-mode cs-cpp-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("python") (with-mode cs-python-mode
							 | 
						||
| 
								 | 
							
										    (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (else (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
									      (process-node-list (current-node)))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element constructorsynopsis
							 | 
						||
| 
								 | 
							
								  (let ((language (if (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      %default-classsynopsis-language%)))
							 | 
						||
| 
								 | 
							
								    (case language
							 | 
						||
| 
								 | 
							
								      (("java") (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("perl") (with-mode cs-perl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("idl") (with-mode cs-idl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("cpp") (with-mode cs-cpp-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("python") (with-mode cs-python-mode
							 | 
						||
| 
								 | 
							
										    (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (else (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
									      (process-node-list (current-node)))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element destructorsynopsis
							 | 
						||
| 
								 | 
							
								  (let ((language (if (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      (attribute-string (normalize "language"))
							 | 
						||
| 
								 | 
							
										      %default-classsynopsis-language%)))
							 | 
						||
| 
								 | 
							
								    (case language
							 | 
						||
| 
								 | 
							
								      (("java") (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("perl") (with-mode cs-perl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("idl") (with-mode cs-idl-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("cpp") (with-mode cs-cpp-mode
							 | 
						||
| 
								 | 
							
										  (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (("python") (with-mode cs-python-mode
							 | 
						||
| 
								 | 
							
										    (process-node-list (current-node))))
							 | 
						||
| 
								 | 
							
								      (else (with-mode cs-java-mode
							 | 
						||
| 
								 | 
							
									      (process-node-list (current-node)))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; ===== Java ========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(mode cs-java-mode
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsis
							 | 
						||
| 
								 | 
							
								  (let* ((classes      (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													(normalize "ooclass")))
							 | 
						||
| 
								 | 
							
									 (classname    (node-list-first classes))
							 | 
						||
| 
								 | 
							
									 (superclasses (node-list-rest classes)))
							 | 
						||
| 
								 | 
							
								    (make element gi: "pre"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "classsynopsis"))
							 | 
						||
| 
								 | 
							
									  (process-node-list classname)
							 | 
						||
| 
								 | 
							
									  (process-node-list superclasses)
							 | 
						||
| 
								 | 
							
									  (literal "{&#RE;")
							 | 
						||
| 
								 | 
							
									  (process-node-list
							 | 
						||
| 
								 | 
							
									   (node-list-filter-by-gi
							 | 
						||
| 
								 | 
							
									    (children (current-node))
							 | 
						||
| 
								 | 
							
									    (list (normalize "constructorsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "destructorsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "fieldsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "methodsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "classsynopsisinfo"))))
							 | 
						||
| 
								 | 
							
									  (literal "}"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsisinfo
							 | 
						||
| 
								 | 
							
								  ($verbatim-display$ %indent-classsynopsisinfo-lines%
							 | 
						||
| 
								 | 
							
										      %number-classsynopsisinfo-lines%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element ooclass
							 | 
						||
| 
								 | 
							
								  (make sequence
							 | 
						||
| 
								 | 
							
								    (if (first-sibling?)
							 | 
						||
| 
								 | 
							
									(literal " ")
							 | 
						||
| 
								 | 
							
									(literal ", "))
							 | 
						||
| 
								 | 
							
								    (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "ooclass"))
							 | 
						||
| 
								 | 
							
									  (process-children))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element oointerface
							 | 
						||
| 
								 | 
							
								  (make sequence
							 | 
						||
| 
								 | 
							
								    (if (first-sibling?)
							 | 
						||
| 
								 | 
							
									(literal " ")
							 | 
						||
| 
								 | 
							
									(literal ", "))
							 | 
						||
| 
								 | 
							
								    (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "oointerface"))
							 | 
						||
| 
								 | 
							
									  (process-children))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element ooexception
							 | 
						||
| 
								 | 
							
								  (make sequence
							 | 
						||
| 
								 | 
							
								    (if (first-sibling?)
							 | 
						||
| 
								 | 
							
									(literal " ")
							 | 
						||
| 
								 | 
							
									(literal ", "))
							 | 
						||
| 
								 | 
							
								    (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "ooexception"))
							 | 
						||
| 
								 | 
							
									  (process-children))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element modifier
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "modifier"))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classname
							 | 
						||
| 
								 | 
							
								  (if (first-sibling?)
							 | 
						||
| 
								 | 
							
								      (make sequence
							 | 
						||
| 
								 | 
							
									(literal "class ")
							 | 
						||
| 
								 | 
							
									(make element gi: "span"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "classname"))
							 | 
						||
| 
								 | 
							
									      (process-children)
							 | 
						||
| 
								 | 
							
									      (literal " "))
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal "extends ")))
							 | 
						||
| 
								 | 
							
								      (make sequence
							 | 
						||
| 
								 | 
							
									(make element gi: "span"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "superclass"))
							 | 
						||
| 
								 | 
							
									      (process-children))
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (literal " ")
							 | 
						||
| 
								 | 
							
									    (literal ", ")))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element fieldsynopsis
							 | 
						||
| 
								 | 
							
								  (make element gi: "code"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "fieldsynopsis"))
							 | 
						||
| 
								 | 
							
									(literal "  ")
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal ";&#RE;")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element type
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "type"))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element varname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "varname"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element initializer
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "initializer"))
							 | 
						||
| 
								 | 
							
									(literal " = ")
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element constructorsynopsis
							 | 
						||
| 
								 | 
							
								  (java-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element destructorsynopsis
							 | 
						||
| 
								 | 
							
								  (java-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodsynopsis
							 | 
						||
| 
								 | 
							
								  (java-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element void
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "void"))
							 | 
						||
| 
								 | 
							
									(literal "void ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodname
							 | 
						||
| 
								 | 
							
								  (process-children))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodparam
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "methodparam"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element parameter
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "parameter"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element exceptionname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "exceptionname"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (literal "&#RE;          throws ")
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define (java-method-synopsis #!optional (nd (current-node)))
							 | 
						||
| 
								 | 
							
								  (let* ((modifiers  (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "modifier")))
							 | 
						||
| 
								 | 
							
									 (notmod     (node-list-filter-by-not-gi
							 | 
						||
| 
								 | 
							
										      (children nd)
							 | 
						||
| 
								 | 
							
										      (list (normalize "modifier"))))
							 | 
						||
| 
								 | 
							
									 (type       (if (equal? (gi (node-list-first notmod)) 
							 | 
						||
| 
								 | 
							
												 (normalize "methodname"))
							 | 
						||
| 
								 | 
							
											 (empty-node-list)
							 | 
						||
| 
								 | 
							
											 (node-list-first notmod)))
							 | 
						||
| 
								 | 
							
									 (methodname (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "methodname")))
							 | 
						||
| 
								 | 
							
									 (param      (node-list-filter-by-gi (node-list-rest notmod)
							 | 
						||
| 
								 | 
							
													     (list (normalize "methodparam"))))
							 | 
						||
| 
								 | 
							
									 (excep      (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "exceptionname"))))
							 | 
						||
| 
								 | 
							
								    (make element gi: "code"
							 | 
						||
| 
								 | 
							
									  attributes: (list (list "class" (gi nd)))
							 | 
						||
| 
								 | 
							
									  (if (first-sibling?)
							 | 
						||
| 
								 | 
							
									      (literal "&#RE;")
							 | 
						||
| 
								 | 
							
									      (empty-sosofo))
							 | 
						||
| 
								 | 
							
									  (literal "  ")
							 | 
						||
| 
								 | 
							
									  (process-node-list modifiers)
							 | 
						||
| 
								 | 
							
									  (process-node-list type)
							 | 
						||
| 
								 | 
							
									  (process-node-list methodname)
							 | 
						||
| 
								 | 
							
									  (literal "(")
							 | 
						||
| 
								 | 
							
									  (process-node-list param)
							 | 
						||
| 
								 | 
							
									  (literal ")")
							 | 
						||
| 
								 | 
							
									  (process-node-list excep)
							 | 
						||
| 
								 | 
							
									  (literal ";&#RE;"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; ===== C++ =========================================================
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(mode cs-cpp-mode
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsis
							 | 
						||
| 
								 | 
							
								  (let* ((classes      (node-list-filter-by-gi (children (current-node))
							 | 
						||
| 
								 | 
							
													       (list (normalize "classname")
							 | 
						||
| 
								 | 
							
														     (normalize "modifier"))))
							 | 
						||
| 
								 | 
							
									 (classname    (let loop ((nl classes) (cn (empty-node-list)))
							 | 
						||
| 
								 | 
							
											 (if (node-list-empty? nl)
							 | 
						||
| 
								 | 
							
											     cn
							 | 
						||
| 
								 | 
							
											     (if (equal? (gi (node-list-first nl))
							 | 
						||
| 
								 | 
							
													 (normalize "classname"))
							 | 
						||
| 
								 | 
							
												 (node-list cn (node-list-first nl))
							 | 
						||
| 
								 | 
							
												 (loop (node-list-rest nl)
							 | 
						||
| 
								 | 
							
												       (node-list cn (node-list-first nl)))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
									 (superclasses (let loop ((nl classes))
							 | 
						||
| 
								 | 
							
											 (if (node-list-empty? nl)
							 | 
						||
| 
								 | 
							
											     (empty-node-list)
							 | 
						||
| 
								 | 
							
											     (if (equal? (gi (node-list-first nl))
							 | 
						||
| 
								 | 
							
													 (normalize "classname"))
							 | 
						||
| 
								 | 
							
												 (node-list-rest nl)
							 | 
						||
| 
								 | 
							
												 (loop (node-list-rest nl)))))))
							 | 
						||
| 
								 | 
							
								    (make element gi: "pre"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "classsynopsis"))
							 | 
						||
| 
								 | 
							
									  (process-node-list classname)
							 | 
						||
| 
								 | 
							
									  (process-node-list superclasses)
							 | 
						||
| 
								 | 
							
									  (literal "{&#RE;")
							 | 
						||
| 
								 | 
							
									  (process-node-list
							 | 
						||
| 
								 | 
							
									   (node-list-filter-by-gi
							 | 
						||
| 
								 | 
							
									    (children (current-node))
							 | 
						||
| 
								 | 
							
									    (list (normalize "constructorsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "destructorsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "fieldsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "methodsynopsis")
							 | 
						||
| 
								 | 
							
										  (normalize "classsynopsisinfo"))))
							 | 
						||
| 
								 | 
							
									  (literal "}"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsisinfo
							 | 
						||
| 
								 | 
							
								  ($verbatim-display$ %indent-classsynopsisinfo-lines%
							 | 
						||
| 
								 | 
							
										      %number-classsynopsisinfo-lines%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element modifier
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "modifier"))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classname
							 | 
						||
| 
								 | 
							
								  (if (first-sibling?)
							 | 
						||
| 
								 | 
							
								      (make sequence
							 | 
						||
| 
								 | 
							
									(literal "class ")
							 | 
						||
| 
								 | 
							
									(make element gi: "span"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "classname"))
							 | 
						||
| 
								 | 
							
									      (process-children))
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ": ")))
							 | 
						||
| 
								 | 
							
								      (make sequence
							 | 
						||
| 
								 | 
							
									(make element gi: "span"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "superclass"))
							 | 
						||
| 
								 | 
							
									      (process-children))
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (literal " ")
							 | 
						||
| 
								 | 
							
									    (literal ", ")))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element fieldsynopsis
							 | 
						||
| 
								 | 
							
								  (make element gi: "code"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "fieldsynopsis"))
							 | 
						||
| 
								 | 
							
									(literal "  ")
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal ";&#RE;")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element type
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "type"))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element varname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "varname"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element initializer
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "initializer"))
							 | 
						||
| 
								 | 
							
									(literal " = ")
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element constructorsynopsis
							 | 
						||
| 
								 | 
							
								  (cpp-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element destructorsynopsis
							 | 
						||
| 
								 | 
							
								  (cpp-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodsynopsis
							 | 
						||
| 
								 | 
							
								  (cpp-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element void
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "void"))
							 | 
						||
| 
								 | 
							
									(literal "void ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodname
							 | 
						||
| 
								 | 
							
								  (process-children))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodparam
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "methodparam"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element parameter
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "parameter"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element exceptionname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "exceptionname"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (literal "&#RE;          throws ")
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define (cpp-method-synopsis #!optional (nd (current-node)))
							 | 
						||
| 
								 | 
							
								  (let* ((modifiers  (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "modifier")))
							 | 
						||
| 
								 | 
							
									 (notmod     (node-list-filter-by-not-gi
							 | 
						||
| 
								 | 
							
										      (children nd)
							 | 
						||
| 
								 | 
							
										      (list (normalize "modifier"))))
							 | 
						||
| 
								 | 
							
									 (type       (if (equal? (gi (node-list-first notmod)) 
							 | 
						||
| 
								 | 
							
												 (normalize "methodname"))
							 | 
						||
| 
								 | 
							
											 (empty-node-list)
							 | 
						||
| 
								 | 
							
											 (node-list-first notmod)))
							 | 
						||
| 
								 | 
							
									 (methodname (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "methodname")))
							 | 
						||
| 
								 | 
							
									 (param      (node-list-filter-by-gi (node-list-rest notmod)
							 | 
						||
| 
								 | 
							
													     (list (normalize "methodparam"))))
							 | 
						||
| 
								 | 
							
									 (excep      (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "exceptionname"))))
							 | 
						||
| 
								 | 
							
								    (make element gi: "code"
							 | 
						||
| 
								 | 
							
									  attributes: (list (list "class" (gi nd)))
							 | 
						||
| 
								 | 
							
									  (if (first-sibling?)
							 | 
						||
| 
								 | 
							
									      (literal "&#RE;")
							 | 
						||
| 
								 | 
							
									      (empty-sosofo))
							 | 
						||
| 
								 | 
							
									  (literal "  ")
							 | 
						||
| 
								 | 
							
									  (process-node-list modifiers)
							 | 
						||
| 
								 | 
							
									  (process-node-list type)
							 | 
						||
| 
								 | 
							
									  (process-node-list methodname)
							 | 
						||
| 
								 | 
							
									  (literal "(")
							 | 
						||
| 
								 | 
							
									  (process-node-list param)
							 | 
						||
| 
								 | 
							
									  (literal ")")
							 | 
						||
| 
								 | 
							
									  (process-node-list excep)
							 | 
						||
| 
								 | 
							
									  (literal ";&#RE;"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; ===== Perl ======================================================== 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(mode cs-perl-mode
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsis
							 | 
						||
| 
								 | 
							
								  (let* ((modifiers    (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													(normalize "modifier")))
							 | 
						||
| 
								 | 
							
									 (classes      (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													(normalize "classname")))
							 | 
						||
| 
								 | 
							
									 (classname    (node-list-first classes))
							 | 
						||
| 
								 | 
							
									 (superclasses (node-list-rest classes)))
							 | 
						||
| 
								 | 
							
								  (make element gi: "pre"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "classsynopsis"))
							 | 
						||
| 
								 | 
							
									(literal "package ")
							 | 
						||
| 
								 | 
							
									(process-node-list classname)
							 | 
						||
| 
								 | 
							
									(literal ";&#RE;")
							 | 
						||
| 
								 | 
							
									(if (node-list-empty? superclasses)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (make sequence
							 | 
						||
| 
								 | 
							
									      (literal "@ISA = (");
							 | 
						||
| 
								 | 
							
									      (process-node-list superclasses)
							 | 
						||
| 
								 | 
							
									      (literal ";&#RE;")))
							 | 
						||
| 
								 | 
							
									(process-node-list
							 | 
						||
| 
								 | 
							
									 (node-list-filter-by-gi
							 | 
						||
| 
								 | 
							
									  (children (current-node))
							 | 
						||
| 
								 | 
							
									  (list (normalize "constructorsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "destructorsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "fieldsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "methodsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "classsynopsisinfo")))))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsisinfo
							 | 
						||
| 
								 | 
							
								  ($verbatim-display$ %indent-classsynopsisinfo-lines%
							 | 
						||
| 
								 | 
							
										      %number-classsynopsisinfo-lines%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element modifier
							 | 
						||
| 
								 | 
							
								  (literal "Perl ClassSynopses don't use Modifiers"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classname
							 | 
						||
| 
								 | 
							
								  (if (first-sibling?)
							 | 
						||
| 
								 | 
							
								      (make element gi: "span"
							 | 
						||
| 
								 | 
							
									    attributes: '(("class" "classname"))
							 | 
						||
| 
								 | 
							
									    (process-children))
							 | 
						||
| 
								 | 
							
								      (make sequence
							 | 
						||
| 
								 | 
							
									(make element gi: "span"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "superclass"))
							 | 
						||
| 
								 | 
							
									      (process-children))
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ", ")))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element fieldsynopsis
							 | 
						||
| 
								 | 
							
								  (make element gi: "code"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "fieldsynopsis"))
							 | 
						||
| 
								 | 
							
									(literal "  ");
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal ";&#RE;")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element type
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "type"))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element varname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "varname"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element initializer
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "initializer"))
							 | 
						||
| 
								 | 
							
									(literal " = ")
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element constructorsynopsis
							 | 
						||
| 
								 | 
							
								  (perl-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element destructorsynopsis
							 | 
						||
| 
								 | 
							
								  (perl-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodsynopsis
							 | 
						||
| 
								 | 
							
								  (perl-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element void
							 | 
						||
| 
								 | 
							
								  (empty-sosofo))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "methodname"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodparam
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "methodparam"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element parameter
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "parameter"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element exceptionname
							 | 
						||
| 
								 | 
							
								  (literal "Perl ClassSynopses don't use Exceptions"))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define (perl-method-synopsis #!optional (nd (current-node)))
							 | 
						||
| 
								 | 
							
								  (let* ((modifiers  (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "modifier")))
							 | 
						||
| 
								 | 
							
									 (notmod     (node-list-filter-by-not-gi
							 | 
						||
| 
								 | 
							
										      (children nd)
							 | 
						||
| 
								 | 
							
										      (list (normalize "modifier"))))
							 | 
						||
| 
								 | 
							
									 (type       (if (equal? (gi (node-list-first notmod)) 
							 | 
						||
| 
								 | 
							
												 (normalize "methodname"))
							 | 
						||
| 
								 | 
							
											 (empty-node-list)
							 | 
						||
| 
								 | 
							
											 (node-list-first notmod)))
							 | 
						||
| 
								 | 
							
									 (methodname (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "methodname")))
							 | 
						||
| 
								 | 
							
									 (param      (node-list-filter-by-gi (node-list-rest notmod)
							 | 
						||
| 
								 | 
							
													     (list (normalize "type")
							 | 
						||
| 
								 | 
							
														   (normalize "void"))))
							 | 
						||
| 
								 | 
							
									 (excep      (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "exceptionname"))))
							 | 
						||
| 
								 | 
							
								    (make element gi: "code"
							 | 
						||
| 
								 | 
							
									  attributes: (list (list "class" (gi nd)))
							 | 
						||
| 
								 | 
							
									  (literal "sub ")
							 | 
						||
| 
								 | 
							
									  (process-node-list modifiers)
							 | 
						||
| 
								 | 
							
									  (process-node-list type)
							 | 
						||
| 
								 | 
							
									  (process-node-list methodname)
							 | 
						||
| 
								 | 
							
									  (literal " { ... }"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; ===== IDL ========================================================= 
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(mode cs-idl-mode
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsis
							 | 
						||
| 
								 | 
							
								  (let* ((modifiers    (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													(normalize "modifier")))
							 | 
						||
| 
								 | 
							
									 (classes      (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													(normalize "classname")))
							 | 
						||
| 
								 | 
							
									 (classname    (node-list-first classes))
							 | 
						||
| 
								 | 
							
									 (superclasses (node-list-rest classes)))
							 | 
						||
| 
								 | 
							
								  (make element gi: "pre"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "classsynopsis"))
							 | 
						||
| 
								 | 
							
									(literal "interface ")
							 | 
						||
| 
								 | 
							
									(process-node-list modifiers)
							 | 
						||
| 
								 | 
							
									(process-node-list classname)
							 | 
						||
| 
								 | 
							
									(if (node-list-empty? superclasses)
							 | 
						||
| 
								 | 
							
									    (literal " ")
							 | 
						||
| 
								 | 
							
									    (make sequence
							 | 
						||
| 
								 | 
							
									      (literal " : ")
							 | 
						||
| 
								 | 
							
									      (process-node-list superclasses)))
							 | 
						||
| 
								 | 
							
									(literal " {&#RE;")
							 | 
						||
| 
								 | 
							
									(process-node-list
							 | 
						||
| 
								 | 
							
									 (node-list-filter-by-gi
							 | 
						||
| 
								 | 
							
									  (children (current-node))
							 | 
						||
| 
								 | 
							
									  (list (normalize "constructorsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "destructorsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "fieldsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "methodsynopsis")
							 | 
						||
| 
								 | 
							
										(normalize "classsynopsisinfo"))))
							 | 
						||
| 
								 | 
							
									(literal "}"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classsynopsisinfo
							 | 
						||
| 
								 | 
							
								  ($verbatim-display$ %indent-classsynopsisinfo-lines%
							 | 
						||
| 
								 | 
							
										      %number-classsynopsisinfo-lines%))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element modifier
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "modifier"))
							 | 
						||
| 
								 | 
							
								    (process-children)
							 | 
						||
| 
								 | 
							
								    (literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element classname
							 | 
						||
| 
								 | 
							
								  (if (first-sibling?)
							 | 
						||
| 
								 | 
							
								      (make element gi: "span"
							 | 
						||
| 
								 | 
							
									    attributes: '(("class" "classname"))
							 | 
						||
| 
								 | 
							
									    (process-children))
							 | 
						||
| 
								 | 
							
								      (make sequence
							 | 
						||
| 
								 | 
							
									(make element gi: "span"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "superclass"))
							 | 
						||
| 
								 | 
							
									      (process-children))
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ", ")))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element fieldsynopsis
							 | 
						||
| 
								 | 
							
								  (make element gi: "code"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "fieldsynopsis"))
							 | 
						||
| 
								 | 
							
									(literal "  ");
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal ";&#RE;")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element type
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "type"))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element varname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "varname"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element initializer
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "initializer"))
							 | 
						||
| 
								 | 
							
									(literal " = ")
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(literal " ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element constructorsynopsis
							 | 
						||
| 
								 | 
							
								  (idl-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element destructorsynopsis
							 | 
						||
| 
								 | 
							
								  (idl-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodsynopsis
							 | 
						||
| 
								 | 
							
								  (idl-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element void
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "void"))
							 | 
						||
| 
								 | 
							
									(literal "void ")))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "methodname"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element methodparam
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "methodparam"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (empty-sosofo)
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element parameter
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "parameter"))
							 | 
						||
| 
								 | 
							
									(process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(element exceptionname
							 | 
						||
| 
								 | 
							
								  (make element gi: "span"
							 | 
						||
| 
								 | 
							
									attributes: '(("class" "exceptionname"))
							 | 
						||
| 
								 | 
							
									(if (first-sibling?)
							 | 
						||
| 
								 | 
							
									    (literal " raises(")
							 | 
						||
| 
								 | 
							
									    (literal ", "))
							 | 
						||
| 
								 | 
							
									(process-children)
							 | 
						||
| 
								 | 
							
									(if (last-sibling?)
							 | 
						||
| 
								 | 
							
									    (literal ")")
							 | 
						||
| 
								 | 
							
									    (empty-sosofo))))
							 | 
						||
| 
								 | 
							
								)
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define (idl-method-synopsis #!optional (nd (current-node)))
							 | 
						||
| 
								 | 
							
								  (let* ((modifiers  (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "modifier")))
							 | 
						||
| 
								 | 
							
									 (notmod     (node-list-filter-by-not-gi
							 | 
						||
| 
								 | 
							
										      (children nd)
							 | 
						||
| 
								 | 
							
										      (list (normalize "modifier"))))
							 | 
						||
| 
								 | 
							
									 (type       (if (equal? (gi (node-list-first notmod)) 
							 | 
						||
| 
								 | 
							
												 (normalize "methodname"))
							 | 
						||
| 
								 | 
							
											 (empty-node-list)
							 | 
						||
| 
								 | 
							
											 (node-list-first notmod)))
							 | 
						||
| 
								 | 
							
									 (methodname (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "methodname")))
							 | 
						||
| 
								 | 
							
									 (param      (node-list-filter-by-gi (node-list-rest notmod)
							 | 
						||
| 
								 | 
							
													     (list (normalize "methodparam"))))
							 | 
						||
| 
								 | 
							
									 (excep      (select-elements (children nd)
							 | 
						||
| 
								 | 
							
												      (normalize "exceptionname"))))
							 | 
						||
| 
								 | 
							
								    (make element gi: "code"
							 | 
						||
| 
								 | 
							
									  attributes: (list (list "class" (gi nd)))
							 | 
						||
| 
								 | 
							
									  (literal "  ")
							 | 
						||
| 
								 | 
							
									  (process-node-list modifiers)
							 | 
						||
| 
								 | 
							
									  (process-node-list type)
							 | 
						||
| 
								 | 
							
									  (process-node-list methodname)
							 | 
						||
| 
								 | 
							
									  (literal "(")
							 | 
						||
| 
								 | 
							
									  (process-node-list param)
							 | 
						||
| 
								 | 
							
									  (literal ")")
							 | 
						||
| 
								 | 
							
									  (process-node-list excep)
							 | 
						||
| 
								 | 
							
									  (literal ";&#RE;"))))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; ===== Python ======================================================= 
							 | 
						||
| 
								 | 
							
								;; Contributed by Lane Stevens, lane@cycletime.com
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(mode cs-python-mode
							 | 
						||
| 
								 | 
							
								  (element classsynopsis
							 | 
						||
| 
								 | 
							
								    (let* ((classes      (select-elements (children (current-node))
							 | 
						||
| 
								 | 
							
													  (normalize "ooclass")))
							 | 
						||
| 
								 | 
							
									   (classname    (node-list-first classes))
							 | 
						||
| 
								 | 
							
									   (superclasses (node-list-rest classes)))
							 | 
						||
| 
								 | 
							
								      (make element gi: "pre"
							 | 
						||
| 
								 | 
							
									    attributes: '(("class" "classsynopsis"))
							 | 
						||
| 
								 | 
							
									    (literal "class ")
							 | 
						||
| 
								 | 
							
									    (process-node-list classname)
							 | 
						||
| 
								 | 
							
									    (literal "(")
							 | 
						||
| 
								 | 
							
									    (process-node-list superclasses)
							 | 
						||
| 
								 | 
							
									    (literal ") :")
							 | 
						||
| 
								 | 
							
									    (process-node-list
							 | 
						||
| 
								 | 
							
									     (node-list-filter-by-gi
							 | 
						||
| 
								 | 
							
									      (children (current-node))
							 | 
						||
| 
								 | 
							
									      (list (normalize "constructorsynopsis")
							 | 
						||
| 
								 | 
							
										    (normalize "destructorsynopsis")
							 | 
						||
| 
								 | 
							
										    (normalize "fieldsynopsis")
							 | 
						||
| 
								 | 
							
										    (normalize "methodsynopsis")
							 | 
						||
| 
								 | 
							
										    (normalize "classsynopsisinfo"))))
							 | 
						||
| 
								 | 
							
									    )
							 | 
						||
| 
								 | 
							
								      )
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  (element ooclass
							 | 
						||
| 
								 | 
							
								    (make sequence
							 | 
						||
| 
								 | 
							
								      (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									    attributes: '(("class" "ooclass"))
							 | 
						||
| 
								 | 
							
									    (process-children)
							 | 
						||
| 
								 | 
							
									    (cond
							 | 
						||
| 
								 | 
							
									     ((first-sibling?) (literal " "))
							 | 
						||
| 
								 | 
							
									     ((last-sibling?) (empty-sosofo))
							 | 
						||
| 
								 | 
							
									     (#t (literal ", "))
							 | 
						||
| 
								 | 
							
									     )
							 | 
						||
| 
								 | 
							
									    )
							 | 
						||
| 
								 | 
							
								      )
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
									    
							 | 
						||
| 
								 | 
							
								  (element classname
							 | 
						||
| 
								 | 
							
								    (if (first-sibling?)
							 | 
						||
| 
								 | 
							
									(make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "classname"))
							 | 
						||
| 
								 | 
							
									      (process-children))
							 | 
						||
| 
								 | 
							
									(make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									      attributes: '(("class" "superclass")))
							 | 
						||
| 
								 | 
							
									)
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  (element methodsynopsis
							 | 
						||
| 
								 | 
							
								    (python-method-synopsis))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  (element initializer
							 | 
						||
| 
								 | 
							
								    (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "initializer"))
							 | 
						||
| 
								 | 
							
									  (literal " = ")
							 | 
						||
| 
								 | 
							
									  (process-children)))
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  (element methodname
							 | 
						||
| 
								 | 
							
								    (process-children))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  (element methodparam
							 | 
						||
| 
								 | 
							
								    (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "methodparam"))
							 | 
						||
| 
								 | 
							
									  (process-children)
							 | 
						||
| 
								 | 
							
									  (if (last-sibling?)
							 | 
						||
| 
								 | 
							
									      (empty-sosofo)
							 | 
						||
| 
								 | 
							
									      (literal ", "))
							 | 
						||
| 
								 | 
							
									  )
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
									      
							 | 
						||
| 
								 | 
							
								    
							 | 
						||
| 
								 | 
							
								  (element parameter
							 | 
						||
| 
								 | 
							
								    (make element gi: "SPAN"
							 | 
						||
| 
								 | 
							
									  attributes: '(("class" "parameter"))
							 | 
						||
| 
								 | 
							
									  (process-children)))
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								  
							 | 
						||
| 
								 | 
							
								  )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								(define (python-method-synopsis #!optional (nd (current-node)))
							 | 
						||
| 
								 | 
							
								  (let* ((the-method-name (select-elements (children nd) (normalize "methodname")))
							 | 
						||
| 
								 | 
							
									 (the-method-params (select-elements (children nd) (normalize "methodparam"))))
							 | 
						||
| 
								 | 
							
								    (make element gi: "code"
							 | 
						||
| 
								 | 
							
									  attributes: (list (list "class" (gi nd)))
							 | 
						||
| 
								 | 
							
									  (literal "    def ")
							 | 
						||
| 
								 | 
							
									  (process-node-list the-method-name)
							 | 
						||
| 
								 | 
							
									  (literal "(")
							 | 
						||
| 
								 | 
							
									  (process-node-list the-method-params)
							 | 
						||
| 
								 | 
							
									  (literal ") :")
							 | 
						||
| 
								 | 
							
									  )
							 | 
						||
| 
								 | 
							
								    )
							 | 
						||
| 
								 | 
							
								  )
							 | 
						||
| 
								 | 
							
								
							 | 
						||
| 
								 | 
							
								;; EOF
							 |