Mercurial > emacs
view etc/schema/xhtml-table.rnc @ 110524:bf806d096e9a
Update to CEDET 1.0's version of EIEIO.
* emacs-lisp/eieio.el (eieio-specialized-key-to-generic-key): New
function.
(eieio-defmethod, eieio-generic-form, eieio-generic-call): Use it.
(eieio-default-eval-maybe): Eval val instead of unquoting only.
(class-precedence-list): If class is nil, return nil.
(eieio-generic-call): If class of first input arg is nil, don't
look up static methods, and do check for primary methods.
(initialize-instance): See if the default needs to be evaluated
during the constructor.
(eieio-perform-slot-validation-for-default): Don't do the check
for values that will eventually be evaluated.
(eieio-eval-default-p): New function.
(eieio-default-eval-maybe): Use it.
* emacs-lisp/eieio.el (eieio-defclass): Allow :c3
method-invocation-order.
(eieio-c3-candidate, eieio-c3-merge-lists): New functions.
(eieio-class-precedence-dfs): Compute class precedence list using
dfs algorithm.
(eieio-class-precedence-bfs): Compute class precedence list using
bfs algorithm.
(eieio-class-precedence-c3): compute class precedence list using
c3 algorithm.
(class-precedence-list): New function.
(eieiomt-method-list, eieiomt-sym-optimize): Use it.
(inconsistent-class-hierarchy): New error symbol.
(call-next-method): Stow the replacement argument list for future
call-next-method invocations.
author | Chong Yidong <cyd@stupidchicken.com> |
---|---|
date | Sun, 19 Sep 2010 00:23:57 -0400 |
parents | 309bef8b751c |
children |
line wrap: on
line source
# Tables Module # This builds on the basic tables module, unlike with the DTD # implementation. include "xhtml-btable.rnc" { table = element table { table.attlist, caption?, (col* | colgroup*), ((thead?, tfoot?, tbody+) | tr+) } th = element th { th.attlist, Flow.model } td = element td { td.attlist, Flow.model } CellHAlign.attrib = attribute align { "left" | "center" | "right" | "justify" | "char" }?, attribute char { Character.datatype }?, attribute charoff { Length.datatype }? CellVAlign.attrib = attribute valign { "top" | "middle" | "bottom" | "baseline" }? scope.attrib = attribute scope { "row" | "col" | "rowgroup" | "colgroup" }? } table.attlist &= attribute width { Length.datatype }?, attribute border { Pixels.datatype }?, frame.attrib, rules.attrib, attribute cellspacing { Length.datatype }?, attribute cellpadding { Length.datatype }? col = element col { col.attlist } col.attlist = Common.attrib, attribute span { Number.datatype }?, attribute width { MultiLength.datatype }?, CellHAlign.attrib, CellVAlign.attrib colgroup = element colgroup { colgroup.attlist, col* } colgroup.attlist = Common.attrib, attribute span { Number.datatype }?, attribute width { MultiLength.datatype }?, CellHAlign.attrib, CellVAlign.attrib tbody = element tbody { tbody.attlist, tr+ } tbody.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib thead = element thead { thead.attlist, tr+ } thead.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib tfoot = element tfoot { tfoot.attlist, tr+ } tfoot.attlist = Common.attrib, CellHAlign.attrib, CellVAlign.attrib frame.attrib = attribute frame { "void" | "above" | "below" | "hsides" | "lhs" | "rhs" | "vsides" | "box" | "border" }? rules.attrib = attribute rules { "none" | "groups" | "rows" | "cols" | "all" }?