⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 v8-earley-boyer.js

📁 linux下开源浏览器WebKit的源码,市面上的很多商用浏览器都是移植自WebKit
💻 JS
📖 第 1 页 / 共 5 页
字号:
    "null": "\000",    "bell": "\007",    "backspace": "\010",    "tab": "\011",    "newline": "\012",    "page": "\014",    "return": "\015",    "escape": "\033",    "space": "\040",    "delete": "\000",    "soh": "\001",    "stx": "\002",    "etx": "\003",    "eot": "\004",    "enq": "\005",    "ack": "\006",    "bel": "\007",    "bs": "\010",    "ht": "\011",    "nl": "\012",    "vt": "\013",    "np": "\014",    "cr": "\015",    "so": "\016",    "si": "\017",    "dle": "\020",    "dc1": "\021",    "dc2": "\022",    "dc3": "\023",    "dc4": "\024",    "nak": "\025",    "syn": "\026",    "etb": "\027",    "can": "\030",    "em": "\031",    "sub": "\032",    "esc": "\033",    "fs": "\034",    "gs": "\035",    "rs": "\036",    "us": "\037",    "sp": "\040",    "del": "\177"};    sc_Char.prototype.toString = function() {    return this.val;};// sc_toDisplayString == toStringsc_Char.prototype.sc_toWriteString = function() {    var entry = sc_Char.char2readable[this.val];    if (entry)	return entry;    else	return "#\\" + this.val;};/*** META ((export #t)           (type bool)           (peephole (postfix "instanceof sc_Char")))*/function sc_isChar(c) {    return (c instanceof sc_Char);}/*** META ((export char=?)           (type bool)           (peephole (hole 2 c1 ".val === " c2 ".val")))*/var sc_isCharEqual = sc_isCharStringEqual;/*** META ((export char<?)           (type bool)           (peephole (hole 2 c1 ".val < " c2 ".val")))*/var sc_isCharLess = sc_isCharStringLess;/*** META ((export char>?)           (type bool)           (peephole (hole 2 c1 ".val > " c2 ".val")))*/var sc_isCharGreater = sc_isCharStringGreater;/*** META ((export char<=?)           (type bool)           (peephole (hole 2 c1 ".val <= " c2 ".val")))*/var sc_isCharLessEqual = sc_isCharStringLessEqual;/*** META ((export char>=?)           (type bool)           (peephole (hole 2 c1 ".val >= " c2 ".val")))*/var sc_isCharGreaterEqual = sc_isCharStringGreaterEqual;/*** META ((export char-ci=?)           (type bool)           (peephole (hole 2 c1 ".val.toLowerCase() === " c2 ".val.toLowerCase()")))*/var sc_isCharCIEqual = sc_isCharStringCIEqual;/*** META ((export char-ci<?)           (type bool)           (peephole (hole 2 c1 ".val.toLowerCase() < " c2 ".val.toLowerCase()")))*/var sc_isCharCILess = sc_isCharStringCILess;/*** META ((export char-ci>?)           (type bool)           (peephole (hole 2 c1 ".val.toLowerCase() > " c2 ".val.toLowerCase()")))*/var sc_isCharCIGreater = sc_isCharStringCIGreater;/*** META ((export char-ci<=?)           (type bool)           (peephole (hole 2 c1 ".val.toLowerCase() <= " c2 ".val.toLowerCase()")))*/var sc_isCharCILessEqual = sc_isCharStringCILessEqual;/*** META ((export char-ci>=?)           (type bool)           (peephole (hole 2 c1 ".val.toLowerCase() >= " c2 ".val.toLowerCase()")))*/var sc_isCharCIGreaterEqual = sc_isCharStringCIGreaterEqual;var SC_NUMBER_CLASS = "0123456789";var SC_WHITESPACE_CLASS = ' \r\n\t\f';var SC_LOWER_CLASS = 'abcdefghijklmnopqrstuvwxyz';var SC_UPPER_CLASS = 'ABCDEFGHIJKLMNOPQRSTUVWXYZ';function sc_isCharOfClass(c, cl) { return (cl.indexOf(c) != -1); }/*** META ((export #t)           (type bool))*/function sc_isCharAlphabetic(c)    { return sc_isCharOfClass(c.val, SC_LOWER_CLASS) ||	  sc_isCharOfClass(c.val, SC_UPPER_CLASS); }/*** META ((export #t)           (type bool)           (peephole (hole 1 "SC_NUMBER_CLASS.indexOf(" c ".val) != -1")))*/function sc_isCharNumeric(c)    { return sc_isCharOfClass(c.val, SC_NUMBER_CLASS); }/*** META ((export #t)           (type bool))*/function sc_isCharWhitespace(c) {    var tmp = c.val;    return tmp === " " || tmp === "\r" || tmp === "\n" || tmp === "\t" || tmp === "\f";}/*** META ((export #t)           (type bool)           (peephole (hole 1 "SC_UPPER_CLASS.indexOf(" c ".val) != -1")))*/function sc_isCharUpperCase(c)    { return sc_isCharOfClass(c.val, SC_UPPER_CLASS); }/*** META ((export #t)           (type bool)           (peephole (hole 1 "SC_LOWER_CLASS.indexOf(" c ".val) != -1")))*/function sc_isCharLowerCase(c)    { return sc_isCharOfClass(c.val, SC_LOWER_CLASS); }/*** META ((export #t)           (peephole (postfix ".val.charCodeAt(0)")))*/function sc_char2integer(c)    { return c.val.charCodeAt(0); }/*** META ((export #t)           (peephole (hole 1 "new sc_Char(String.fromCharCode(" n "))")))*/function sc_integer2char(n)    { return new sc_Char(String.fromCharCode(n)); }/*** META ((export #t)           (peephole (hole 1 "new sc_Char(" c ".val.toUpperCase())")))*/function sc_charUpcase(c)    { return new sc_Char(c.val.toUpperCase()); }/*** META ((export #t)           (peephole (hole 1 "new sc_Char(" c ".val.toLowerCase())")))*/function sc_charDowncase(c)    { return new sc_Char(c.val.toLowerCase()); }function sc_makeJSStringOfLength(k, c) {    var fill;    if (c === undefined)	fill = " ";    else	fill = c;    var res = "";    var len = 1;    // every round doubles the size of fill.    while (k >= len) {	if (k & len)	    res = res.concat(fill);	fill = fill.concat(fill);	len *= 2;    }    return res;}function sc_makejsString(k, c) {    var fill;    if (c)	fill = c.val;    else	fill = " ";    return sc_makeJSStringOfLength(k, fill);}function sc_jsstring2list(s) {    var res = null;    for (var i = s.length - 1; i >= 0; i--)	res = sc_cons(new sc_Char(s.charAt(i)), res);    return res;}function sc_list2jsstring(l) {    var a = new Array();    while(l !== null) {	a.push(l.car.val);	l = l.cdr;    }    return "".concat.apply("", a);}var sc_Vector = Array;sc_Vector.prototype.sc_toWriteOrDisplayString = function(writeOrDisplay) {    if (this.length === 0) return "#()";    var res = "#(" + writeOrDisplay(this[0]);    for (var i = 1; i < this.length; i++)	res += " " + writeOrDisplay(this[i]);    res += ")";    return res;};sc_Vector.prototype.sc_toDisplayString = function() {    return this.sc_toWriteOrDisplayString(sc_toDisplayString);};sc_Vector.prototype.sc_toWriteString = function() {    return this.sc_toWriteOrDisplayString(sc_toWriteString);};/*** META ((export vector? array?)           (type bool)           (peephole (postfix " instanceof sc_Vector")))*/function sc_isVector(v) {    return (v instanceof sc_Vector);}// only applies to vectorsfunction sc_isVectorEqual(v1, v2, comp) {    if (v1.length !== v2.length) return false;    for (var i = 0; i < v1.length; i++)	if (!comp(v1[i], v2[i])) return false;    return true;}/*** META ((export make-vector make-array)) */function sc_makeVector(size, fill) {    var a = new sc_Vector(size);    if (fill !== undefined)	sc_vectorFillBang(a, fill);    return a;}/*** META ((export vector array)           (peephole (vector)))*/function sc_vector() {    var a = new sc_Vector();    for (var i = 0; i < arguments.length; i++)	a.push(arguments[i]);    return a;}/*** META ((export vector-length array-length)           (peephole (postfix ".length")))*/function sc_vectorLength(v) {    return v.length;}/*** META ((export vector-ref array-ref)           (peephole (hole 2 v "[" pos "]")))*/function sc_vectorRef(v, pos) {    return v[pos];}/*** META ((export vector-set! array-set!)           (peephole (hole 3 v "[" pos "] = " val)))*/function sc_vectorSetBang(v, pos, val) {    v[pos] = val;}/*** META ((export vector->list array->list)) */function sc_vector2list(a) {    var res = null;    for (var i = a.length-1; i >= 0; i--)	res = sc_cons(a[i], res);    return res;}/*** META ((export list->vector list->array)) */function sc_list2vector(l) {    var a = new sc_Vector();    while(l !== null) {	a.push(l.car);	l = l.cdr;    }    return a;}/*** META ((export vector-fill! array-fill!)) */function sc_vectorFillBang(a, fill) {    for (var i = 0; i < a.length; i++)	a[i] = fill;}/*** META ((export #t)) */function sc_copyVector(a, len) {    if (len <= a.length)	return a.slice(0, len);    else {	var tmp = a.concat();	tmp.length = len;	return tmp;    }}/*** META ((export #t)           (peephole (hole 3 a ".slice(" start "," end ")")))*/function sc_vectorCopy(a, start, end) {    return a.slice(start, end);}/*** META ((export #t)) */function sc_vectorCopyBang(target, tstart, source, sstart, send) {    if (!sstart) sstart = 0;    if (!send) send = source.length;    // if target == source we don't want to overwrite not yet copied elements.    if (tstart <= sstart) {	for (var i = tstart, j = sstart; j < send; i++, j++) {	    target[i] = source[j];	}    } else {	var diff = send - sstart;	for (var i = tstart + diff - 1, j = send - 1;	     j >= sstart;	     i--, j--) {	    target[i] = source[j];	}    }    return target;}/*** META ((export #t)           (type bool)           (peephole (hole 1 "typeof " o " === 'function'")))*/function sc_isProcedure(o) {    return (typeof o === "function");}/*** META ((export #t)) */function sc_apply(proc) {    var args = new Array();    // first part of arguments are not in list-form.    for (var i = 1; i < arguments.length - 1; i++)	args.push(arguments[i]);    var l = arguments[arguments.length - 1];    while (l !== null) {	args.push(l.car);	l = l.cdr;    }    return proc.apply(null, args);}/*** META ((export #t)) */function sc_map(proc, l1) {    if (l1 === undefined)	return null;    // else    var nbApplyArgs = arguments.length - 1;    var applyArgs = new Array(nbApplyArgs);    var revres = null;    while (l1 !== null) {	for (var i = 0; i < nbApplyArgs; i++) {	    applyArgs[i] = arguments[i + 1].car;	    arguments[i + 1] = arguments[i + 1].cdr;	}	revres = sc_cons(proc.apply(null, applyArgs), revres);    }    return sc_reverseAppendBang(revres, null);}/*** META ((export #t)) */function sc_mapBang(proc, l1) {    if (l1 === undefined)	return null;    // else    var l1_orig = l1;    var nbApplyArgs = arguments.length - 1;    var applyArgs = new Array(nbApplyArgs);    while (l1 !== null) {	var tmp = l1;	for (var i = 0; i < nbApplyArgs; i++) {	    applyArgs[i] = arguments[i + 1].car;	    arguments[i + 1] = arguments[i + 1].cdr;	}	tmp.car = proc.apply(null, applyArgs);    }    return l1_orig;}     /*** META ((export #t)) */function sc_forEach(proc, l1) {    if (l1 === undefined)	return undefined;    // else    var nbApplyArgs = arguments.length - 1;    var applyArgs = new Array(nbApplyArgs);    while (l1 !== null) {	for (var i = 0; i < nbApplyArgs; i++) {	    applyArgs[i] = arguments[i + 1].car;	    arguments[i + 1] = arguments[i + 1].cdr;	}	proc.apply(null, applyArgs);    }    // add return so FF does not complain.    return undefined;}/*** META ((export #t)) */function sc_filter(proc, l1) {    var dummy = { cdr : null };    var tail = dummy;    while (l1 !== null) {	if (proc(l1.car) !== false) {	    tail.cdr = sc_cons(l1.car, null);	    tail = tail.cdr;	}	l1 = l1.cdr;    }    return dummy.cdr;}/*** META ((export #t)) */function sc_filterBang(proc, l1) {    var head = sc_cons("dummy", l1);    var it = head;    var next = l1;    while (next !== null) {        if (proc(next.car) !== false) {	    it.cdr = next	    it = next;	}	next = next.cdr;    }    it.cdr = null;    return head.cdr;}function sc_filterMap1(proc, l1) {    var revres = null;    while (l1 !== null) {        var tmp = proc(l1.car)        if (tmp !== false) revres = sc_cons(tmp, revres);        l1 = l1.cdr;    }    return sc_reverseAppendBang(revres, null);}function sc_filterMap2(proc, l1, l2) {    var revres = null;    while (l1 !== null) {        var tmp = proc(l1.car, l2.car);        if(tmp !== false) revres = sc_cons(tmp, revres);	l1 = l1.cdr;	l2 = l2.cdr    }    return sc_reverseAppendBang(revres, null);}/*** META ((export #t)) */function sc_filterMap(proc, l1, l2, l3) {    if (l2 === undefined)	return sc_filterMap1(proc, l1);    else if (l3 === undefined)	return sc_filterMap2(proc, l1, l2);    // else    var nbApplyArgs = arguments.length - 1;    var applyArgs = new Array(nbApplyArgs);    var revres = null;    while (l1 !== null) {	for (var i = 0; i < nbApplyArgs; i++) {	    applyArgs[i] = arguments[i + 1].car;	    arguments[i + 1] = arguments[i + 1].cdr;	}	var tmp = proc.apply(null, applyArgs);	if(tmp !== false) revres = sc_cons(tmp, revres);    }    return sc_reverseAppendBang(revres, null);}/*** META ((export #t)) */function sc_any(proc, l) {    var revres = null;    while (l !== null) {        var tmp = proc(l.car);        if(tmp !== false) return tmp;	l = l.cdr;    }    return false;}/*** META ((export any?)           (peephole (hole 2 "sc_any(" proc "," l ") !== false")))*/function sc_anyPred(proc, l) {    return sc_any(proc, l)!== false;}/*** META ((export #t)) */function sc_every(proc, l) {    var revres = null;    var tmp = true;    while (l !== null) {        tmp = proc(l.car);        if (tmp === false) return false;	l = l.cdr;    }    return tmp;}/*** META ((export every?)           (peephole (hole 2 "sc_every(" proc "," l ") !== false")))*/function sc_everyPred(proc, l) {    var tmp = sc_every(proc, l);    if (tmp !== false) return true;    return false;}/*** META ((export #t)           (peephole (postfix "()")))*/function sc_force(o) {    return o();}/*** META ((export #t)) */function sc_makePromise(proc) {    var isResultReady = false;    var result = undefined;    return function() {	if (!isResultReady) {	    var tmp = proc();	    if (!isResultReady) {		isResultReady = true;

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -