const fs = require("fs-extra"); const path = require("path"); const toml = require("@iarna/toml"); function TAG(...ltag) { return function (s) { return { tags: ltag, s: s }; }; } const arrow = TAG("arrow"); const arrow2 = TAG("arrow2"); const centerOps = TAG("center-ops"); const eqeq = TAG("eqeq"); const exeq = TAG("exeq"); const eqeqeq = TAG("eqeq", "eqeqeq"); const exeqeq = TAG("exeq", "exeqeq"); const eqexeq = TAG("eqexeq", "eqexeq", "eqexeq-dl"); const eqslasheq = TAG("slasheq", "eqslasheq"); const slasheq = TAG("slasheq"); const tildeeq = TAG("tildeeq"); const ineq = TAG("ineq"); const logc = TAG("logic"); const brst = TAG("brst"); const trig = TAG("trig"); const ltgt = TAG("ltgt-diamond", "ltgt-ne"); const llggeq_a = TAG("arrow", "llggeq"); const llggeq_b = TAG("arrow2", "llggeq"); const dotOper = TAG("dot-oper"); const kernDotty = TAG("kern-dotty"); const htmlComment = TAG("html-comment"); const plusPlus = TAG("plusplus"); const colonGt = TAG("colon-greater"); const brackBar = TAG("brack-bar"); const braceBar = TAG("brace-bar"); const ligationSamples = [ [ arrow2("-<<"), arrow2("-<"), arrow2("-<-"), arrow("<--"), arrow("<---"), arrow("<<-"), arrow("<-"), arrow("->"), arrow("->>"), arrow("-->"), arrow("--->"), arrow2("->-"), arrow2(">-"), arrow2(">>-"), arrow("<->"), arrow("<-->"), arrow("<--->"), arrow("<---->"), htmlComment(""), arrow("--->"), arrow2("->-"), arrow2(">-"), arrow2(">>-") ], [ arrow2("=<<"), arrow2("=<"), arrow2("=<="), arrow("<=="), arrow("<==="), llggeq_a("<<="), ineq("<="), arrow("=>"), arrow("=>>"), arrow("==>"), arrow("===>"), arrow2("=>="), ineq(">="), llggeq_b(">>=") ], [ arrow("<->"), arrow("<-->"), arrow("<--->"), arrow("<---->"), arrow("<=>"), arrow("<==>"), arrow("<===>"), arrow("<====>"), arrow("-------->") ], [ arrow("<~~"), arrow("<~"), arrow("~>"), arrow("~~>"), kernDotty("::"), kernDotty(":::"), eqeq("=="), exeq("!="), slasheq("/="), tildeeq(`~=`), ltgt(`<>`), eqeqeq("==="), exeqeq("!=="), eqslasheq("=/="), eqexeq("=!=") ], [ centerOps(":="), centerOps(":-"), centerOps(":+"), centerOps("<*"), centerOps("<*>"), centerOps("*>"), trig("<|"), trig("<|>"), trig("|>"), dotOper("<."), dotOper("<.>"), dotOper(".>"), centerOps("+:"), centerOps("-:"), centerOps("=:"), colonGt(":>") ], [ brst("(*"), brst("*)"), brackBar("[|"), brackBar("|]"), braceBar("{|"), braceBar("|}"), plusPlus("++"), plusPlus("+++"), logc("\\/"), logc("/\\"), logc("|-"), logc("-|"), htmlComment("