Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- (() => {
- const Мнемоники_команд = [
- [ 0x15,
- ["10^x", "10x", "F10^x", "F10x"],
- 0, 3, 2, [2, 3]
- ],
- [ 0x54,
- ["НОП", "KНОП", "КНОП"],
- 0, 1, 1, [1, 2]
- ],
- [ 0x16,
- ["e^x", "ex", "Fe^x", "Fex"],
- 0, 3, 2, [2, 3]
- ],
- [ 0x17,
- ["lg", "Flg"],
- 0, 3, 1, [1]
- ],
- [ 0x18,
- ["ln", "Fln"],
- 0, 3, 1, [1]
- ],
- [ 0x30,
- ["ЧМ", "KЧМ", "КЧМ"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x19,
- ["arcsin", "Farcsin"],
- 0, 3, 1, [1]
- ],
- [ 0x31,
- ["|x|", "K|x|", "К|x|"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x1A,
- ["arccos", "Farccos"],
- 0, 3, 1, [1]
- ],
- [ 0x32,
- ["ЗН", "KЗН", "КЗН"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x1B,
- ["arctg", "Farctg"],
- 0, 3, 1, [1]
- ],
- [ 0x33,
- ["ГМ", "KГМ", "КГМ"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x1C,
- ["sin", "Fsin"],
- 0, 3, 1, [1]
- ],
- [ 0x34,
- ["[x]", "K[x]", "К[x]"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x1D,
- ["cos", "Fcos"],
- 0, 3, 1, [1]
- ],
- [ 0x35,
- ["{x}", "(x)", "K{x}", "К{x}", "K(x)", "К(x)"],
- 0, 3, 2, [2, 3, 4, 5]
- ],
- [ 0x1E,
- ["tg", "Ftg"],
- 0, 3, 1, [1]
- ],
- [ 0x36,
- ["max", "Kmax", "Кmax"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x10,
- ["+"],
- 0, 3, 0, []
- ],
- [ 0x11,
- ["-", "–"],
- 0, 3, 0, []
- ],
- [ 0x12,
- ["*", "x", "х", "×", "⋅"],
- 0, 3, 1, []
- ],
- [ 0x13,
- ["/", ":", "÷"],
- 0, 3, 1, []
- ],
- [ 0x20,
- ["пи", "π", "Fпи", "Fπ"],
- 0, 0, 2, [2, 3]
- ],
- [ 0x26,
- ["МГ", "KМГ", "КМГ"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x21,
- ["КвКор", "квкор", "корень", "√", "FКвКор", "Fквкор", "Fкорень", "F√"],
- 0, 3, 4, [4, 5, 6, 7]
- ],
- [ 0x22,
- ["x^2", "x2", "x²", "Fx^2", "Fx2", "Fx²"],
- 0, 3, 3, [3, 4, 5]
- ],
- [ 0x23,
- ["1/x", "F1/x"],
- 0, 3, 1, [1]
- ],
- [ 0x14,
- ["<->", "XY", "↔", "X↔Y"],
- 0, 1, 0, []
- ],
- [ 0x0E,
- ["^", "В^", "↑", "В↑"],
- 0, 1, 1, []
- ],
- [ 0x24,
- ["x^y", "xy", "Fx^y", "Fxy"],
- 0, 3, 2, [2, 3]
- ],
- [ 0x27,
- ["K-", "К-"],
- 0, 0, 0, []
- ],
- [ 0x28,
- ["Kx", "Кх", "K*", "К*"],
- 0, 0, 0, []
- ],
- [ 0x29,
- ["K/", "К/", "K:", "К:", "K÷", "К÷"],
- 0, 0, 2, []
- ],
- [ 0x2A,
- ["МЧ", "KМЧ", "КМЧ"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x0F,
- ["Вx", "FВx"],
- 0, 1, 1, [1]
- ],
- [ 0x3B,
- ["СЧ", "KСЧ", "КСЧ"],
- 0, 0, 1, [1, 2]
- ],
- [ 0x0A,
- [",", "."],
- 0, 0, 0, []
- ],
- [ 0x0B,
- ["/-/", "+/-"],
- 0, 0, 0, []
- ],
- [ 0x0C,
- ["ВП"],
- 0, 0, 0, []
- ],
- [ 0x0D,
- ["Сx"],
- 0, 1, 0, []
- ],
- [ 0x25,
- ["->", "↻", "→", "F->", "F↻", "F→"],
- 0, 1, 3, [3, 4, 5]
- ],
- [ 0x37,
- ["/\\", "⋀", "K/\\", "К/\\", "K⋀", "К⋀"],
- 0, 3, 2, [2, 3, 4, 5]
- ],
- [ 0x38,
- ["\\/", "⋁", "K\\/", "К\\/", "K⋁", "К⋁"],
- 0, 3, 2, [2, 3, 4, 5]
- ],
- [ 0x39,
- ["(+)", "⊕", "K(+)", "К(+)", "K⊕", "К⊕"],
- 0, 3, 2, [2, 3, 4, 5]
- ],
- [ 0x3A,
- ["ИНВ", "KИНВ", "КИНВ"],
- 0, 3, 1, [1, 2]
- ],
- [ 0x52,
- ["В/О", "В/0"],
- 0, 4, 0, []
- ],
- [ 0x50,
- ["С/П"],
- 0, 4, 0, []
- ],
- [ 0x59,
- ["x>=0", "x≥0", "x≥0", "x⩾0", "Fx>=0", "Fx≥0", "Fx≥0", "Fx⩾0"],
- 2, 4, 4, [4, 5, 6, 7]
- ],
- [ 0x57,
- ["x#0", "x!=0", "x<>0", "x≠0", "Fx#0", "Fx!=0", "Fx<>0", "Fx≠0"],
- 2, 4, 4, [4, 5, 6, 7]
- ],
- [ 0x51,
- ["БП"],
- 2, 4, 0, []
- ],
- [ 0x53,
- ["ПП"],
- 2, 4, 0, []
- ],
- [ 0x58,
- ["L2", "FL2"],
- 2, 4, 1, [1]
- ],
- [ 0x5A,
- ["L3", "FL3"],
- 2, 4, 1, [1]
- ],
- [ 0x5C,
- ["x<0", "Fx<0"],
- 2, 4, 1, [1]
- ],
- [ 0x5E,
- ["x=0", "Fx=0"],
- 2, 4, 1, [1]
- ],
- [ 0x5D,
- ["L0", "FL0"],
- 2, 4, 1, [1]
- ],
- [ 0x5B,
- ["L1", "FL1"],
- 2, 4, 1, [1]
- ],
- [ 0x40,
- ["П", "XП"],
- 1, 2, 0, []
- ],
- [ 0x60,
- ["ИП", "ПX", "Пx"],
- 1, 2, 0, []
- ],
- [ 0x70,
- ["Kx#0", "Кx#0", "Kx!=0", "Кx!=0", "Kx<>0", "Кx<>0", "Kx≠0", "Кx≠0",],
- 1, 4, 0, []
- ],
- [ 0x80,
- ["KБП", "КБП"],
- 1, 4, 0, []
- ],
- [ 0x90,
- ["Kx>=0", "Кx>=0", "Kx≥0", "Кx≥0", "Kx⩾0", "Кx⩾0"],
- 1, 4, 0, []
- ],
- [ 0xA0,
- ["KПП", "КПП"],
- 1, 4, 0, []
- ],
- [ 0xB0,
- ["KП", "КП", "KXП", "КXП"],
- 1, 2, 0, []
- ],
- [ 0xC0,
- ["Kx<0", "Кx<0"],
- 1, 4, 0, []
- ],
- [ 0xD0,
- ["KИП", "КИП", "KПX", "КПX"],
- 1, 2, 0, []
- ],
- [ 0xE0,
- ["Kx=0", "Кx=0"],
- 1, 4, 0, []
- ]
- ],
- Подсветка = {
- номер: "font-size: 75%; color: #A0A0A0;",
- адрес: "text-decoration: underline; color: #A000A0;",
- команды: ["color: #000000;", "color: #A0A000;", "color: #00A000;", "color: #A00000;", "color: #0000A0;"],
- префикс: "font-weight: lighter; font-size: 90%; color: #404040;"
- };
- function Подсветить_блок(блок) {
- const
- код = блок.innerHTML.split(/\s+/).filter(команда => команда.length > 0);
- let
- подсв_код = "",
- с_адресом = код[0].length == 2 && !/[^[0-9A\.]/.test(код[0]),
- найдено, номер_в_списке;
- for (let i = 0; i < код.length; i++) {
- if (i > 0)
- подсв_код += i % 10 == 0 ? "\r\n" :"\t";
- if (код[i].length > 3 && код[i][2] == ".") {
- подсв_код += "<span style='" + Подсветка.номер + "'>" + код[i].slice(0, 3) + "</span>";
- код[i] = код[i].slice(3);
- }
- if (с_адресом) {
- подсв_код += "<span style='" + Подсветка.адрес + "'>" + код[i] + "</span>";
- с_адресом = false;
- }
- else {
- найдено = false;
- код[i] = код[i].replace(/</g, "<");
- код[i] = код[i].replace(/>/g, ">");
- for (let j = 0; j < Мнемоники_команд.length; j++) {
- номер_в_списке = Мнемоники_команд[j][1].indexOf(код[i]);
- if (номер_в_списке != -1) {
- с_адресом = Мнемоники_команд[j][2] == 2;
- if (Мнемоники_команд[j][5].indexOf(номер_в_списке) != -1)
- подсв_код += "<span style='" + Подсветка.префикс + "'>" + код[i].slice(0, 1) + "</span><span style='" + Подсветка.команды[Мнемоники_команд[j][3]] + "'>" + код[i].slice(1) + "</span>";
- else
- подсв_код += "<span style='" + Подсветка.команды[Мнемоники_команд[j][3]] + "'>" + код[i] + "</span>";
- найдено = true;
- break;
- }
- }
- if (!найдено)
- for (let j = 0; j < Мнемоники_команд.length; j++) {
- if (Мнемоники_команд[j][2] != 1)
- continue;
- номер_в_списке = Мнемоники_команд[j][1].indexOf(код[i].slice(0, код[i].length - 1));
- if (номер_в_списке != -1) {
- с_адресом = Мнемоники_команд[j][2] == 2;
- if (Мнемоники_команд[j][5].indexOf(номер_в_списке) != -1)
- подсв_код += "<span style='" + Подсветка.префикс + "'>" + код[i].slice(0, 1) + "</span><span style='" + Подсветка.команды[Мнемоники_команд[j][3]] + "'>" + код[i].slice(1) + "</span>";
- else
- подсв_код += "<span style='" + Подсветка.команды[Мнемоники_команд[j][3]] + "'>" + код[i] + "</span>";
- найдено = true;
- break;
- }
- }
- if (!найдено)
- подсв_код += "<span style='" + Подсветка.команды[0] + "'>" + код[i] + "</span>";
- }
- }
- блок.innerHTML = "<pre>" + подсв_код + "</pre>";
- }
- document.addEventListener("DOMContentLoaded", () => {
- [...document.getElementsByClassName("Код_ПМК")].forEach(
- блок => Подсветить_блок(блок)
- );
- });
- })();
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement