vue-cuihovah-ueditor
Version:
将ueditor添加了修改mathjax公式的功能,封装成了Vue组件
1,171 lines (1,165 loc) • 36.8 kB
JavaScript
/*!
* ====================================================
* Kity Formula Parser - v1.0.0 - 2014-07-31
* https://github.com/HanCong03/kityformula-editor
* GitHub: https://github.com/kitygraph/kityformula-editor.git
* Copyright (c) 2014 Baidu Kity Group; Licensed MIT
* ====================================================
*/
!
function() {
function a(a) {
b.r([c[a]])
}
var b = {
r: function(a) {
if (b[a].inited) return b[a].value;
if ("function" != typeof b[a].value) return b[a].inited = !0,
b[a].value;
var c = {
exports: {}
},
d = b[a].value(null, c.exports, c);
if (b[a].inited = !0, b[a].value = d, void 0 !== d) return d;
for (var e in c.exports) if (c.exports.hasOwnProperty(e)) return b[a].inited = !0,
b[a].value = c.exports,
c.exports
}
};
b[0] = {
value: function() {
function a(a) {
this.formula = a
}
function b(a, e, f, g, i) {
var j, k = null,
l = null,
m = [],
n = e.operand || [],
o = null;
if (f.operand = [], -1 === e.name.indexOf("text")) {
for (var p = 0,
q = n.length; q > p; p++) k = n[p],
k !== h ? k ? "string" == typeof k ? (n[p] = "brackets" === e.name && 2 > p ? k: "function" === e.name && 0 === p ? k: c("text", k), f.operand.push(n[p])) : (f.operand.push({}), n[p] = b(a.operand[p], k, f.operand[f.operand.length - 1], g, i)) : (n[p] = c("empty"), f.operand.push(n[p])) : (m.push(p), i.hasOwnProperty("startOffset") || (i.startOffset = p), i.endOffset = p, e.attr && e.attr.id && (i.groupId = e.attr.id));
for (2 === m.length && (i.endOffset -= 1); p = m.length;) p = m[p - 1],
n.splice(p, 1),
m.length--,
a.operand.splice(p, 1)
}
if (o = d(e.name), !o) throw new Error("operator type error: not found " + e.operator);
j = function() {},
j.prototype = o.prototype,
l = new j,
o.apply(l, n),
f.func = l;
for (var r in e.callFn) e.callFn.hasOwnProperty(r) && l[r] && l[r].apply(l, e.callFn[r]);
return e.attr && (e.attr.id && (g[e.attr.id] = {
objGroup: l,
strGroup: a
}), e.attr["data-root"] && (g.root = {
objGroup: l,
strGroup: a
}), l.setAttr(e.attr)),
l
}
function c(a, b) {
switch (a) {
case "empty":
return new kf.EmptyExpression;
case "text":
return new kf.TextExpression(b)
}
}
function d(a) {
return g[a] || kf[a.replace(/^[a-z]/i,
function(a) {
return a.toUpperCase()
}).replace(/-([a-z])/gi,
function(a, b) {
return b.toUpperCase()
}) + "Expression"]
}
function e(a) {
var b = {};
if ("[object Array]" === {}.toString.call(a)) {
b = [];
for (var c = 0,
d = a.length; d > c; c++) b[c] = f(a[c])
} else for (var e in a) a.hasOwnProperty(e) && (b[e] = f(a[e]));
return b
}
function f(a) {
return a ? "object" != typeof a ? a: e(a) : a
}
var g = {},
h = "\uf155";
return a.prototype.generateBy = function(a) {
var c = a.tree,
d = {},
f = {},
g = {};
if ("string" == typeof c) throw new Error("Unhandled error");
return this.formula.appendExpression(b(c, e(c), d, g, f)),
{
select: f,
parsedTree: c,
tree: d,
mapping: g
}
},
a.prototype.regenerateBy = function(a) {
return this.formula.clearExpressions(),
this.generateBy(a)
},
a
}
},
b[1] = {
value: function() {
return {
toRPNExpression: b.r(2),
generateTree: b.r(3)
}
}
},
b[2] = {
value: function() {
function a(b) {
var e = [],
f = null;
for (b = c(b); f = b.shift();)"combination" === f.name && 1 === f.operand.length && "brackets" === f.operand[0].name && (f = f.operand[0]),
e.push(d.isArray(f) ? a(f) : f);
return e
}
function c(a) {
for (var b = [], c = null; void 0 !== (c = a.pop());) if (!c || "object" != typeof c || c.sign !== !1 && "function" !== c.name) b.push(c);
else {
var d = c.handler(c, [], b.reverse());
b.unshift(d),
b.reverse()
}
return b.reverse()
}
var d = b.r(4);
return a
}
},
b[3] = {
value: function() {
function a(b) {
for (var e = null,
f = [], g = 0, h = b.length; h > g; g++) d.isArray(b[g]) && (b[g] = a(b[g]));
for (; e = b.shift();) f.push("object" == typeof e && e.handler ? e.handler(e, f, b) : e);
return c(f)
}
var c = b.r(13),
d = b.r(4);
return a
}
},
b[4] = {
value: function() {
var a = b.r(7),
c = b.r(6),
d = b.r(15),
e = {
getLatexType: function(b) {
return b = b.replace(/^\\/, ""),
a[b] ? "operator": c[b] ? "function": "text"
},
isArray: function(a) {
return a && "[object Array]" === Object.prototype.toString.call(a)
},
getDefine: function(b) {
return e.extend({},
a[b.replace("\\", "")])
},
getFuncDefine: function(a) {
return {
name: "function",
params: a.replace(/^\\/, ""),
handler: d
}
},
getBracketsDefine: function(b, c) {
return e.extend({
params: [b, c]
},
a.brackets)
},
extend: function(a, b) {
for (var c in b) b.hasOwnProperty(c) && (a[c] = b[c]);
return a
}
};
return e
}
},
b[5] = {
value: function() {
var a = !0;
return {
".": a,
"{": a,
"}": a,
"[": a,
"]": a,
"(": a,
")": a,
"|": a
}
}
},
b[6] = {
value: function() {
return {
sin: 1,
cos: 1,
arccos: 1,
cosh: 1,
det: 1,
inf: 1,
limsup: 1,
Pr: 1,
tan: 1,
arcsin: 1,
cot: 1,
dim: 1,
ker: 1,
ln: 1,
sec: 1,
tanh: 1,
arctan: 1,
coth: 1,
exp: 1,
lg: 1,
log: 1,
arg: 1,
csc: 1,
gcd: 1,
lim: 1,
max: 1,
sinh: 1,
deg: 1,
hom: 1,
liminf: 1,
min: 1,
sup: 1
}
}
},
b[7] = {
value: function() {
var a = b.r(22),
c = b.r(11);
return {
"^": {
name: "superscript",
type: c.OP,
handler: a
},
_: {
name: "subscript",
type: c.OP,
handler: a
},
frac: {
name: "fraction",
type: c.FN,
sign: !1,
handler: b.r(14)
},
dfrac: {
name: "fraction",
type: c.FN,
sign: !1,
handler: b.r(14)
},
sqrt: {
name: "radical",
type: c.FN,
sign: !1,
handler: b.r(23)
},
mathrel: {
name: "mathrel",
type: c.FN,
sign: !1,
handler: b.r(53)
},
sum: {
name: "summation",
type: c.FN,
traversal: "rtl",
handler: b.r(24)
},
"int": {
name: "integration",
type: c.FN,
traversal: "rtl",
handler: b.r(16)
},
brackets: {
name: "brackets",
type: c.FN,
handler: b.r(12)
},
mathcal: {
name: "mathcal",
type: c.FN,
sign: !1,
handler: b.r(19)
},
mathfrak: {
name: "mathfrak",
type: c.FN,
sign: !1,
handler: b.r(20)
},
mathbb: {
name: "mathbb",
type: c.FN,
sign: !1,
handler: b.r(18)
},
mathrm: {
name: "mathrm",
type: c.FN,
sign: !1,
handler: b.r(21)
},
// added by michael
stackrel: {
name: "stackrel",
type: c.FN,
sign: !1,
handler: b.r(45)
},
underline: {
name: "underline",
type: c.FN,
sign: !1,
handler: b.r(47)
},
xrightarrow: {
name: "xrightarrow",
type: c.FN,
sign: !1,
handler: b.r(47)
},
overline: {
name: "overline",
type: c.FN,
sign: !1,
handler: b.r(47)
},
widehat: {
name: "widehat",
type: c.FN,
sign: !1,
handler: b.r(47)
},
overrightarrow: {
name: "overrightarrow",
type: c.FN,
sign: !1,
handler: b.r(47)
},
dot: {
name: "dot",
type: c.FN,
sign: !1,
handler: b.r(47)
},
underbrace: {
name: "underbrace",
type: c.FN,
sign: !1,
handler: b.r(47)
}
}
}
},
b[8] = {
value: function() {
return {
"int": b.r(26),
quot: b.r(27)
}
}
},
b[9] = {
value: function() {
return {
combination: b.r(29),
fraction: b.r(30),
"function": b.r(31),
integration: b.r(32),
subscript: b.r(39),
superscript: b.r(41),
script: b.r(37),
radical: b.r(38),
mathrel: b.r(52),
summation: b.r(40),
brackets: b.r(28),
mathcal: b.r(34),
mathfrak: b.r(35),
mathbb: b.r(33),
mathrm: b.r(36),
// added by michael
stackrel: b.r(46),
underline: b.r(48),
xrightarrow: b.r(55),
overline: b.r(49),
widehat: b.r(50),
overrightarrow: b.r(54),
dot: b.r(56),
underbrace: b.r(51)
}
}
},
b[10] = {
value: function() {
return {
"#": 1,
$: 1,
"%": 1,
_: 1,
"&": 1,
"{": 1,
"}": 1,
"^": 1,
"~": 1
}
}
},
b[11] = {
value: function() {
return {
OP: 1,
FN: 2
}
}
},
b[12] = {
value: function() {
var a = b.r(5);
return function(b, c, d) {
for (var e = 0,
f = b.params.length; f > e; e++) if (! (b.params[e] in a)) throw new Error("Brackets: invalid params");
return b.operand = b.params,
b.params[2] = d.shift(),
delete b.handler,
delete b.params,
b
}
}
},
b[13] = {
value: function() {
return function() {
return {
name: "combination",
operand: arguments[0] || []
}
}
}
},
b[14] = {
value: function() {
return function(a, b, c) {
var d = c.shift(),
e = c.shift();
if (void 0 === d || void 0 === e) throw new Error("Frac: Syntax Error");
return d.handler && "integration" === d.name ? (d = d.handler(d, b, [e]), e = c.shift()) : e.handler && "integration" === e.name && (e = e.handler(e, b, [c.shift()])),
a.operand = [d, e],
delete a.handler,
a
}
}
},
b[15] = {
value: function() {
var a = b.r(17);
return function(b, c, d) {
var e = a.exec(d);
return e.expr && e.expr.handler && "integration" === e.expr.name && (e.expr = e.expr.handler(e.expr, c, [d.shift()])),
b.operand = [b.params, e.expr, e.superscript, e.subscript],
delete b.params,
delete b.handler,
b
}
}
},
b[16] = {
value: function() {
var a = b.r(17),
c = b.r(11).FN;
return function(b, d, e) {
var f = e.shift(),
g = a.exec(e);
return g.expr && g.expr.type === c && g.expr.handler && "integration" === g.expr.name && (g.expr = g.expr.handler(g.expr, d, [e.shift()])),
b.operand = [g.expr, g.superscript, g.subscript],
b.callFn = {
setType: [0 | f]
},
delete b.handler,
b
}
}
},
b[17] = {
value: function() {
function a(a) {
var c = b(a),
d = null,
e = {
superscript: null,
subscript: null
};
if (!c) return e;
if (d = b(a), e[c.type] = c.value || null, d) {
if (d.type === c.type) throw new Error("Script: syntax error!");
e[d.type] = d.value || null
}
return e
}
function b(a) {
var b = a.shift();
return b ? "subscript" === b.name || "superscript" === b.name ? {
type: b.name,
value: a.shift()
}: (a.unshift(b), null) : null
}
return {
exec: function(b) {
var c = a(b),
d = b.shift();
if (d && d.name && -1 !== d.name.indexOf("script")) throw new Error("Script: syntax error!");
return c.expr = d || null,
c
}
}
}
},
b[18] = {
value: function() {
return function(a, b, c) {
var d = c.shift();
return "object" == typeof d && "combination" === d.name && (d = d.operand.join("")),
a.name = "text",
a.attr = {
_reverse: "mathbb"
},
a.callFn = {
setFamily: ["KF AMS BB"]
},
a.operand = [d],
delete a.handler,
a
}
}
},
b[19] = {
value: function() {
return function(a, b, c) {
var d = c.shift();
return "object" == typeof d && "combination" === d.name && (d = d.operand.join("")),
a.name = "text",
a.attr = {
_reverse: "mathcal"
},
a.callFn = {
setFamily: ["KF AMS CAL"]
},
a.operand = [d],
delete a.handler,
a
}
}
},
b[20] = {
value: function() {
return function(a, b, c) {
var d = c.shift();
return "object" == typeof d && "combination" === d.name && (d = d.operand.join("")),
a.name = "text",
a.attr = {
_reverse: "mathfrak"
},
a.callFn = {
setFamily: ["KF AMS FRAK"]
},
a.operand = [d],
delete a.handler,
a
}
}
},
b[21] = {
value: function() {
return function(a, b, c) {
var d = c.shift();
return "object" == typeof d && "combination" === d.name && (d = d.operand.join("")),
a.name = "text",
a.attr = {
_reverse: "mathrm"
},
a.callFn = {
setFamily: ["KF AMS ROMAN"]
},
a.operand = [d],
delete a.handler,
a
}
}
},
b[22] = {
value: function() {
return function(a, b, c) {
var d = b.pop(),
e = c.shift() || null;
if (!e) throw new Error("Missing script");
if (d = d || "", d.name === a.name || "script" === d.name) throw new Error("script error");
return "subscript" === d.name ? (d.name = "script", d.operand[2] = d.operand[1], d.operand[1] = e, d) : "superscript" === d.name ? (d.name = "script", d.operand[2] = e, d) : (a.operand = [d, e], delete a.handler, a)
}
}
},
b[23] = {
value: function() {
var a = b.r(13);
return function(b, c, d) {
var e = d.shift(),
f = null,
g = null;
if ("[" === e) {
for (e = []; (f = d.shift()) && "]" !== f;) e.push(f);
e = 0 === e.length ? null: a(e),
g = d.shift()
} else g = e,
e = null;
return b.operand = [g, e],
delete b.handler,
b
}
}
},
b[24] = {
value: function() {
var a = b.r(17),
c = b.r(11).FN;
return function(b, d, e) {
var f = a.exec(e);
return f.expr && f.expr.type === c && f.expr.handler && "integration" === f.expr.name && (f.expr = f.expr.handler(f.expr, d, [e.shift()])),
b.operand = [f.expr, f.superscript, f.subscript],
delete b.handler,
b
}
}
},
b[25] = {
value: function() {
function a(a) {
if (d(a)) return a.substring(1);
switch (m.getLatexType(a)) {
case "operator":
return m.getDefine(a);
case "function":
return m.getFuncDefine(a);
default:
return c(a)
}
}
function c(a) {
return 0 === a.indexOf("\\") ? a + "\\": a
}
function d(a) {
return 0 === a.indexOf("\\") ? !!l[a.substring(1)] : !1
}
function e(a) {
return a.replace(/\\\s+/, "").replace(/\s*([^a-z0-9\s])\s*/gi,
function(a, b) {
return b
})
}
var f = b.r(43).Parser,
g = b.r(1),
h = b.r(8),
i = b.r(42),
j = b.r(7),
k = b.r(9),
l = b.r(10),
m = b.r(4),
n = "\ufff8",
o = "\ufffc",
p = new RegExp(n + "|" + o, "g"),
q = new RegExp(n, "g"),
r = new RegExp(o, "g");
f.register("latex", f.implement({
parse: function(a) {
var b = this.split(this.format(a));
return b = this.parseToGroup(b),
b = this.parseToStruct(b),
this.generateTree(b)
},
serialization: function(a, b) {
return i(a, b)
},
expand: function(a) {
var b = a.parse,
c = null,
d = a.pre,
e = a.reverse;
for (var f in b) b.hasOwnProperty(f) && (c = f.replace(/\\/g, ""), j[c] = b[f]);
for (var f in e) e.hasOwnProperty(f) && (k[f.replace(/\\/g, "")] = e[f]);
if (d) for (var f in d) d.hasOwnProperty(f) && (h[f.replace(/\\/g, "")] = d[f])
},
format: function(a) {
a = e(a),
a = a.replace(p, "").replace(/\\{/gi, n).replace(/\\}/gi, o);
for (var b in h) h.hasOwnProperty(b) && (a = h[b](a));
return a
},
split: function(a) {
var b = [],
c = /(?:\\[^a-z]\s*)|(?:\\[a-z]+\s*)|(?:[{}]\s*)|(?:[^\\{}]\s*)/gi,
d = /^\s+|\s+$/g,
e = null;
for (a = a.replace(d, ""); e = c.exec(a);) e = e[0].replace(d, ""),
e && b.push(e);
return b
},
generateTree: function(a) {
for (var b = [], c = null; c = a.shift();) b.push(m.isArray(c) ? this.generateTree(c) : c);
return b = g.toRPNExpression(b),
g.generateTree(b)
},
parseToGroup: function(a) {
for (var b = [], c = [b], d = 0, e = 0, f = 0, g = a.length; g > f; f++) switch (a[f]) {
case "{":
d++,
c.push(b),
b.push([]),
b = b[b.length - 1];
break;
case "}":
d--,
b = c.pop();
break;
case "\\left":
e++,
c.push(b),
b.push([[]]),
b = b[b.length - 1][0],
b.type = "brackets",
f++,
b.leftBrackets = a[f].replace(q, "{").replace(r, "}");
break;
case "\\right":
e--,
f++,
b.rightBrackets = a[f].replace(q, "{").replace(r, "}"),
b = c.pop();
break;
default:
b.push(a[f].replace(q, "\\{").replace(r, "\\}"))
}
if (0 !== d) throw new Error("Group Error!");
if (0 !== e) throw new Error("Brackets Error!");
return c[0]
},
parseToStruct: function(b) {
for (var c = [], d = 0, e = b.length; e > d; d++) m.isArray(b[d]) ? "brackets" === b[d].type ? (c.push(m.getBracketsDefine(b[d].leftBrackets, b[d].rightBrackets)), c.push(this.parseToStruct(b[d]))) : c.push(this.parseToStruct(b[d])) : c.push(a(b[d]));
return c
}
}))
}
},
b[26] = {
value: function() {
return function(a) {
return a.replace(/\\(i+)nt(\b|[^a-zA-Z])/g,
function(a, b, c) {
return "\\int " + b.length + c
})
}
}
},
b[27] = {
value: function() {
return function(a) {
return a.replace(/``/g, "\u201c")
}
}
},
b[28] = {
value: function() {
return function(a) {
return ("{" === a[0] || "}" === a[0]) && (a[0] = "\\" + a[0]),
("{" === a[1] || "}" === a[1]) && (a[1] = "\\" + a[1]),
["\\left", a[0], a[2], "\\right", a[1]].join(" ")
}
}
},
b[29] = {
value: function() {
return function(a) {
if(this.attr)
return this.attr["data-root"] || this.attr["data-placeholder"] ? a.join("") : "{" + a.join("") + "}"
else
return '{'+a.join('')+'}';
}
}
},
b[30] = {
value: function() {
return function(a) {
return "\\frac " + a[0] + " " + a[1]
}
}
},
b[31] = {
value: function() {
return function(a) {
var b = ["\\" + a[0]];
return a[2] && b.push("^" + a[2]),
a[3] && b.push("_" + a[3]),
a[1] && b.push(" " + a[1]),
b.join("")
}
}
},
b[32] = {
value: function() {
return function(a) {
var b = ["\\int "];
if (this.callFn && this.callFn.setType) {
b = ["\\"];
for (var c = 0,
d = this.callFn.setType; d > c; c++) b.push("i");
b.push("nt ")
}
return a[1] && b.push("^" + a[1]),
a[2] && b.push("_" + a[2]),
a[0] && b.push(" " + a[0]),
b.join("")
}
}
},
b[33] = {
value: function() {
return function(a) {
return "\\mathbb{" + a[0] + "}"
}
}
},
b[34] = {
value: function() {
return function(a) {
return "\\mathcal{" + a[0] + "}"
}
}
},
b[35] = {
value: function() {
return function(a) {
return "\\mathfrak{" + a[0] + "}"
}
}
},
b[36] = {
value: function() {
return function(a) {
return "\\mathrm{" + a[0] + "}"
}
}
},
b[37] = {
value: function() {
return function(a) {
return a[0] + "^" + a[1] + "_" + a[2]
}
}
},
b[38] = {
value: function() {
return function(a) {
var b = ["\\sqrt"];
return a[1] && b.push("[" + a[1] + "]"),
b.push(" " + a[0]),
b.join("")
}
}
},
b[39] = {
value: function() {
return function(a) {
return a[0] + "_" + a[1]
}
}
},
b[40] = {
value: function() {
return function(a) {
var b = ["\\sum "];
return a[1] && b.push("^" + a[1]),
a[2] && b.push("_" + a[2]),
a[0] && b.push(" " + a[0]),
b.join("")
}
}
},
b[41] = {
value: function() {
return function(a) {
return a[0] + "^" + a[1]
}
}
},
b[42] = {
value: function() {
function a(b, e) {
var g = [],
h = null,
i = null;
if ("object" != typeof b) return c(b) ? "\\" + b + " ": b.replace(f,
function(a, b) {
return b + " "
});
"combination" === b.name && 1 === b.operand.length && "combination" === b.operand[0].name && (b = b.operand[0]),
i = b.operand;
for (var j = 0,
k = i.length; k > j; j++) g.push(i[j] ? a(i[j]) : i[j]);
return h = b.attr && b.attr._reverse ? b.attr._reverse: b.name,
d[h].call(b, g, e)
}
function c(a) {
return !! e[a]
}
var d = b.r(9),
e = b.r(10),
f = /(\\(?:[\w]+)|(?:[^a-z]))\\/gi;
return function(b, c) {
return a(b, c)
}
}
},
b[43] = {
value: function(a, b, c) {
function d(a) {
this.impl = new a,
this.conf = {}
}
function e() {
this.conf = {}
}
var f = {},
g = {},
h = {
extend: function(a, b) {
var c = null;
b = [].slice.call(arguments, 1);
for (var d = 0,
e = b.length; e > d; d++) {
c = b[d];
for (var f in c) c.hasOwnProperty(f) && (a[f] = c[f])
}
},
setData: function(a, b, c) {
if ("string" == typeof b) a[b] = c;
else {
if ("object" != typeof b) throw new Error("invalid option");
for (c in b) b.hasOwnProperty(c) && (a[c] = b[c])
}
}
},
i = {
use: function(a) {
if (!g[a]) throw new Error("unknown parser type");
return this.proxy(g[a])
},
config: function(a, b) {
return h.setData(f, a, b),
this
},
register: function(a, b) {
return g[a.toLowerCase()] = b,
this
},
implement: function(a) {
var b = function() {},
c = a.constructor ||
function() {},
d = function() {
e.call(this),
c.call(this)
};
b.prototype = e.prototype,
d.prototype = new b,
delete a.constructor;
for (var f in a)"constructor" !== f && a.hasOwnProperty(f) && (d.prototype[f] = a[f]);
return d
},
proxy: function(a) {
return new d(a)
}
};
h.extend(d.prototype, {
config: function(a, b) {
h.setData(this.conf, a, b)
},
set: function(a, b) {
this.impl.set(a, b)
},
parse: function(a) {
var b = {
config: {},
tree: this.impl.parse(a)
};
return h.extend(b.config, f, this.conf),
b
},
serialization: function(a, b) {
return this.impl.serialization(a, b)
},
expand: function(a) {
this.impl.expand(a)
}
}),
h.extend(e.prototype, {
set: function(a, b) {
h.extend(this.conf, a, b)
},
parse: function() {
throw new Error("Abstract function")
}
}),
c.exports = {
Parser: i,
ParserInterface: e
}
}
},
b[44] = {
value: function() {
var a = b.r(43).Parser;
b.r(25),
window.kf.Parser = a,
window.kf.Assembly = b.r(0)
}
},
b[45] = {
value: function() {
return function(a, b, c) {
var d = c.shift(),
e = c.shift();
if (void 0 === d || void 0 === e) throw new Error("Stackrel: Syntax Error");
return d.handler && "integration" === d.name ? (d = d.handler(d, b, [e]), e = c.shift()) : e.handler && "integration" === e.name && (e = e.handler(e, b, [c.shift()])),
a.operand = [d, e],
delete a.handler,
a
}
}
},
b[46] = {
value: function() {
return function(a) {
return "\\stackrel " + a[0] + " " + a[1]
}
}
},
b[47] = {
value: function() {
var a = b.r(13);
return function(b, c, d) {
var e = d.shift(),
g = e;
return b.operand = [g],
delete b.handler,
b
}
}
},
b[48] = {
value: function() {
return function(a) {
return "\\underline{" + a[0] + "}"
}
}
},
b[49] = {
value: function() {
return function(a) {
return "\\overline{" + a[0] + "}"
}
}
},
b[50] = {
value: function() {
return function(a) {
return "\\widehat{" + a[0] + "}"
}
}
},
b[51] = {
value: function() {
return function(a) {
return "\\underbrace{" + a[0] + "}"
}
}
},
b[52] = {
value: function() {
return function(a) {
return "\\mathrel{" + a[0] + "}"
}
}
},
// mathrel
b[53] = {
value: function(){
var a = b.r(13);
return function(b, c, d) {
var e = d.shift();
var g = e;
b.operand = [g];
delete b.handler;
return b;
}
}
},
// overrightarrow
b[54] = {
value: function() {
return function(a) {
return "\\overrightarrow{" + a[0] + "}";
}
}
},
// xrightarrow
b[55] = {
value: function() {
return function(a) {
return "\\xrightarrow{" + a[0] + "}";
}
}
},
// xrightarrow
b[56] = {
value: function() {
return function(a) {
return "\\dot{" + a[0] + "}";
}
}
},
b[100] = {
};
var c = {
"kf.start": 44
}; !
function() {
try {
a("kf.start")
} catch(b) {}
} (this)
} ();