瀏覽代碼

org-element: Silence byte-compiler

Nicolas Goaziou 12 年之前
父節點
當前提交
a605067181
共有 1 個文件被更改,包括 97 次插入96 次删除
  1. 97 96
      contrib/lisp/org-element.el

+ 97 - 96
contrib/lisp/org-element.el

@@ -85,11 +85,11 @@
 ;; An Org buffer is a nested list of such elements and objects, whose
 ;; type is `org-data' and properties is nil.
 ;;
-;; The first part of this file implements a parser and an interpreter
-;; for each type of Org syntax.
+;; The first part of this file defines Org syntax, while the second
+;; one provide accessors and setters functions.
 ;;
-;; The next two parts introduce accessors, setters, and a function
-;; retrieving the element starting at point.
+;; The next part implements a parser and an interpreter for each
+;; element and object type in Org syntax.
 ;;
 ;; The following part creates a fully recursive buffer parser.  It
 ;; also provides a tool to map a function to elements or objects
@@ -102,7 +102,8 @@
 ;;
 ;; The library ends by furnishing a set of interactive tools for
 ;; element's navigation and manipulation, mostly based on
-;; `org-element-at-point' function.
+;; `org-element-at-point' function, and a way to give information
+;; about document structure around point with `org-element-context'.
 
 
 ;;; Code:
@@ -328,6 +329,97 @@ still has an entry since one of its properties (`:title') does.")
   "Alist between element types and location of secondary value.")
 
 
+
+;;; Accessors and Setters
+;;
+;; Provide four accessors: `org-element-type', `org-element-property'
+;; `org-element-contents' and `org-element-restriction'.
+;;
+;; Setter functions allow to modify elements by side effect.  There is
+;; `org-element-put-property', `org-element-set-contents',
+;; `org-element-set-element' and `org-element-adopt-element'.  Note
+;; that `org-element-set-element' and `org-element-adopt-element' are
+;; higher level functions since also update `:parent' property.
+
+(defsubst org-element-type (element)
+  "Return type of ELEMENT.
+
+The function returns the type of the element or object provided.
+It can also return the following special value:
+  `plain-text'       for a string
+  `org-data'         for a complete document
+  nil                in any other case."
+  (cond
+   ((not (consp element)) (and (stringp element) 'plain-text))
+   ((symbolp (car element)) (car element))))
+
+(defsubst org-element-property (property element)
+  "Extract the value from the PROPERTY of an ELEMENT."
+  (plist-get (nth 1 element) property))
+
+(defsubst org-element-contents (element)
+  "Extract contents from an ELEMENT."
+  (and (consp element) (nthcdr 2 element)))
+
+(defsubst org-element-restriction (element)
+  "Return restriction associated to ELEMENT.
+ELEMENT can be an element, an object or a symbol representing an
+element or object type."
+  (cdr (assq (if (symbolp element) element (org-element-type element))
+	     org-element-object-restrictions)))
+
+(defsubst org-element-put-property (element property value)
+  "In ELEMENT set PROPERTY to VALUE.
+Return modified element."
+  (when (consp element)
+    (setcar (cdr element) (plist-put (nth 1 element) property value)))
+  element)
+
+(defsubst org-element-set-contents (element &rest contents)
+  "Set ELEMENT contents to CONTENTS.
+Return modified element."
+  (cond ((not element) (list contents))
+	((cdr element) (setcdr (cdr element) contents))
+	(t (nconc element contents))))
+
+(defsubst org-element-set-element (old new)
+  "Replace element or object OLD with element or object NEW.
+The function takes care of setting `:parent' property for NEW."
+  ;; OLD can belong to the contents of PARENT or to its secondary
+  ;; string.
+  (let* ((parent (org-element-property :parent old))
+	 (sec-loc (cdr (assq (org-element-type parent)
+			     org-element-secondary-value-alist)))
+	 (sec-value (and sec-loc (org-element-property sec-loc parent)))
+	 (place (or (member old sec-value) (member old parent))))
+    ;; Make sure NEW has correct `:parent' property.
+    (org-element-put-property new :parent parent)
+    ;; Replace OLD with NEW in PARENT.
+    (setcar place new)))
+
+(defsubst org-element-adopt-element (parent child &optional append)
+  "Add an element to the contents of another element.
+
+PARENT is an element or object.  CHILD is an element, an object,
+or a string.
+
+CHILD is added at the beginning of PARENT contents, unless the
+optional argument APPEND is non-nil, in which case CHILD is added
+at the end.
+
+The function takes care of setting `:parent' property for CHILD.
+Return parent element."
+  (if (not parent) (list child)
+    (let ((contents (org-element-contents parent)))
+      (apply 'org-element-set-contents
+	     parent
+	     (if append (append contents (list child)) (cons child contents))))
+    ;; Link the CHILD element with PARENT.
+    (when (consp child) (org-element-put-property child :parent parent))
+    ;; Return the parent element.
+    parent))
+
+
 
 ;;; Greater elements
 ;;
@@ -3085,97 +3177,6 @@ CONTENTS is nil."
   (format "=%s=" (org-element-property :value verbatim)))
 
 
-
-;;; Accessors and Setters
-;;
-;; Provide four accessors: `org-element-type', `org-element-property'
-;; `org-element-contents' and `org-element-restriction'.
-;;
-;; Setter functions allow to modify elements by side effect.  There is
-;; `org-element-put-property', `org-element-set-contents',
-;; `org-element-set-element' and `org-element-adopt-element'.  Note
-;; that `org-element-set-element' and `org-element-adopt-element' are
-;; higher level functions since also update `:parent' property.
-
-(defsubst org-element-type (element)
-  "Return type of ELEMENT.
-
-The function returns the type of the element or object provided.
-It can also return the following special value:
-  `plain-text'       for a string
-  `org-data'         for a complete document
-  nil                in any other case."
-  (cond
-   ((not (consp element)) (and (stringp element) 'plain-text))
-   ((symbolp (car element)) (car element))))
-
-(defsubst org-element-property (property element)
-  "Extract the value from the PROPERTY of an ELEMENT."
-  (plist-get (nth 1 element) property))
-
-(defsubst org-element-contents (element)
-  "Extract contents from an ELEMENT."
-  (and (consp element) (nthcdr 2 element)))
-
-(defsubst org-element-restriction (element)
-  "Return restriction associated to ELEMENT.
-ELEMENT can be an element, an object or a symbol representing an
-element or object type."
-  (cdr (assq (if (symbolp element) element (org-element-type element))
-	     org-element-object-restrictions)))
-
-(defsubst org-element-put-property (element property value)
-  "In ELEMENT set PROPERTY to VALUE.
-Return modified element."
-  (when (consp element)
-    (setcar (cdr element) (plist-put (nth 1 element) property value)))
-  element)
-
-(defsubst org-element-set-contents (element &rest contents)
-  "Set ELEMENT contents to CONTENTS.
-Return modified element."
-  (cond ((not element) (list contents))
-	((cdr element) (setcdr (cdr element) contents))
-	(t (nconc element contents))))
-
-(defsubst org-element-set-element (old new)
-  "Replace element or object OLD with element or object NEW.
-The function takes care of setting `:parent' property for NEW."
-  ;; OLD can belong to the contents of PARENT or to its secondary
-  ;; string.
-  (let* ((parent (org-element-property :parent old))
-	 (sec-loc (cdr (assq (org-element-type parent)
-			     org-element-secondary-value-alist)))
-	 (sec-value (and sec-loc (org-element-property sec-loc parent)))
-	 (place (or (member old sec-value) (member old parent))))
-    ;; Make sure NEW has correct `:parent' property.
-    (org-element-put-property new :parent parent)
-    ;; Replace OLD with NEW in PARENT.
-    (setcar place new)))
-
-(defsubst org-element-adopt-element (parent child &optional append)
-  "Add an element to the contents of another element.
-
-PARENT is an element or object.  CHILD is an element, an object,
-or a string.
-
-CHILD is added at the beginning of PARENT contents, unless the
-optional argument APPEND is non-nil, in which case CHILD is added
-at the end.
-
-The function takes care of setting `:parent' property for CHILD.
-Return parent element."
-  (if (not parent) (list child)
-    (let ((contents (org-element-contents parent)))
-      (apply 'org-element-set-contents
-	     parent
-	     (if append (append contents (list child)) (cons child contents))))
-    ;; Link the CHILD element with PARENT.
-    (when (consp child) (org-element-put-property child :parent parent))
-    ;; Return the parent element.
-    parent))
-
-
 
 ;;; Parsing Element Starting At Point
 ;;