diff options
Diffstat (limited to 'share/extensions/render_alphabetsoup_config.py')
-rwxr-xr-x | share/extensions/render_alphabetsoup_config.py | 902 |
1 files changed, 902 insertions, 0 deletions
diff --git a/share/extensions/render_alphabetsoup_config.py b/share/extensions/render_alphabetsoup_config.py new file mode 100755 index 0000000..91b486a --- /dev/null +++ b/share/extensions/render_alphabetsoup_config.py @@ -0,0 +1,902 @@ +# coding=utf-8 +# pylint: disable=invalid-name,line-too-long +# Syntax format: (raise your hand if you know lisp :-) +# +# 'state0': ("file.svg", ( ( ('state1', dx, dy, T-B, L|R),), +# ( ('state2', ...), ('state3', ...),), +# ( ('state4', ...),), +# ) ), +# ) +# +# Translation of the above in CNF: +# state0 -> state1 +# state0 -> state2 state3 +# state0 -> state4 +# +# Semantics at state0: +# Paste subtree image from state1 onto "file.svg". +# Subtree image is translated by (dx, dy) (measured in units, not pixels!). +# Subtree image is flipped top to bottom if v==1. +# Subtree image is flipped left to right if h==1. +# +# Notes: +# Origin (0,0) is at *upper* left corner. +# For optional reflections, add both reflecting and non-reflecting rules +# For 180 degree rotations, set v = 1, h = 1. +# It helps to have an empty "epsilon" image. +# +"""Data for render alphabet soup""" + +syntax = { + "start": ( + "epsilon.svg", + ((("lc", 0, 0, 0, 0),), (("UC", 0, 0, 0, 0),)), # start state + ), + # lowercase + "lc": ( + "epsilon.svg", + ( + (("barsym", 0, 0, 0, 0),), # (2096714) (26) + (("lc2", 0, 0, 0, 0),), # (830) (19) + ), + ), + # uppercase + "UC": ( + "epsilon.svg", + ((("UCb", 0, 0, 0, 0),), (("UCu", 0, -5, 0, 0),)), # (2160) (30) + ), + "UCb": ( + "epsilon.svg", + ( + (("Bar", 0, 0, 0, 0),), # (21) Psi T I KK Phi + (("Bar", 0, 0, 0, 1),), # + (("D", 0, 0, 0, 0),), # (39) D O Q C G + (("D", 0, 0, 0, 1),), # + (("E", 0, 0, 0, 0),), # (373) E B PL 3 3r 8 S Theta Eth/Dyet + (("E", 0, 0, 0, 1),), # + (("F", 0, 0, 0, 0),), # (84) F P R + (("F", 0, 0, 0, 1),), # + (("H", 0, 0, 0, 0),), # (8) H Hblock + (("H", 0, 0, 0, 1),), # + (("L", 0, 0, 0, 0),), # (12) L J U + (("L", 0, 0, 0, 1),), # + (("V", 0, 0, 0, 1),), # (6) A V M Delta Forall W + (("X", 0, 0, 0, 0),), # (172) X N M W Sigma NN + (("X", 0, 0, 0, 0),), # (172) X N M W Sigma NN + ), + ), + "UCu": ("epsilon.svg", ((("UCb", 0, 0, 1, 1),),)), + # for statistical balancing + "lc2": ( + "epsilon.svg", + ( + (("osym", 0, 0, 0, 0),), # (40) o, c, e, ou + (("vsym", 0, 0, 0, 0),), # (40) v, w, ^, y + (("dsym", 0, 0, 0, 1),), # (96) x, z, 7, 2, yogh + (("lc3", 0, 0, 0, 0),), # (928) (5) + ), + ), + "lc3": ( + "epsilon.svg", + ( + (("3sym", 0, 0, 0, 0),), # (40) epsilon + (("ssym", 0, 0, 0, 0),), # (8) s + (("asym", 0, 0, 0, 0),), # (880) a 6 9 + ), + ), + # symmetry rules + "barsym": ( + "epsilon.svg", + ( + (("bar", 0, 0, 0, 0),), + (("bar", 0, 0, 0, 1),), + (("bar", 0, 0, 1, 0),), + (("bar", 0, 0, 1, 1),), + ), + ), + "6sym": ( + "epsilon.svg", + ( + (("6", 0, 0, 0, 0),), + (("6", 0, 0, 0, 1),), + (("6", 0, 0, 1, 0),), + (("6", 0, 0, 1, 1),), + ), + ), + "3sym": ( + "epsilon.svg", + ( + (("3", 0, 0, 0, 0),), + (("3", 0, 0, 0, 1),), + (("3", 0, 0, 1, 0),), + (("3", 0, 0, 1, 1),), + ), + ), + "vsym": ("epsilon.svg", ((("v", 0, 0, 0, 0),), (("v", 0, 0, 1, 1),))), + "osym": ("epsilon.svg", ((("o", 0, 0, 0, 0),), (("o", 0, 0, 0, 1),))), + "ssym": ("epsilon.svg", ((("s", 0, 0, 0, 0),), (("s", 0, 0, 0, 1),))), + "dsym": ( + "epsilon.svg", + ( + (("diag", 0, 0, 0, 0), ("diag", 0, 0, 1, 1)), + (("diag", 0, 0, 0, 1), ("diag", 0, 0, 1, 0)), + (("dstk", 0, 0, 0, 0),), + ), + ), + "dstk": ( + "epsilon.svg", + ( + (("stik", 0, 4, 0, 0), ("z", 0, 0, 1, 1)), + (("stik", 0, 4, 0, 0), ("x", 0, 0, 1, 1)), + (("stik", 0, 4, 0, 1), ("z", 0, 0, 1, 0)), + (("stik", 0, 4, 0, 1), ("x", 0, 0, 1, 0)), + ), + ), + "asym": ( + "epsilon.svg", + ( + (("abase", 0, 0, 0, 0),), + (("abase", 0, 0, 0, 1),), + (("abase", 0, 0, 1, 0),), + (("abase", 0, 0, 1, 1),), + ), + ), + # epsilon rules + "diag": ( + "epsilon.svg", + ( + (("x", 0, 0, 0, 0),), + (("yogh", 0, 0, 1, 1),), + (("z", 0, 0, 0, 0),), + (("7", 0, 0, 0, 0),), + (("2", 0, 0, 0, 0),), + ), + ), + "bar": ( + "bar.svg", + ( + (("vert", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)), # f l i t j glot. + (("k", 0, 0, 0, 0), ("vert", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)), # k + (("b", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)), # h heng + (("n", 0, 0, 0, 0), ("vert", 0, 0, 1, 0)), # n m r eng u uu mu + (("b1", 0, 0, 0, 0), ("b0", 0, 0, 1, 0)), # thorn eject. + (("b1", 0, 0, 0, 0), ("n0", 0, 0, 1, 0)), # b p q d + (("n1", 0, 0, 0, 0), ("n0", 0, 0, 1, 0)), # open-a + ), + ), + "vert": ( + "epsilon.svg", + ( + (("xtnd", 0, 0, 0, 0),), + (("srf", 0, 0, 1, 0),), + # (('xtnd', 0,0,0,1),), + # (('srf', 0,0,1,1),), + ), + ), + "srf": ( + "epsilon.svg", + ( + (("lserif", 0, 0, 0, 0),), + (("lserif", 0, 0, 0, 1),), + (("serif", 0, 0, 0, 0),), + (("tserif", 0, 0, 0, 0),), + (("tserif", 0, 0, 0, 1),), + ), + ), + "xtnd": ( + "epsilon.svg", + ( + (("cross", 0, 0, 0, 0),), # this needs to be L-R flippable + (("cross", 0, 0, 0, 1),), + (("l", 0, 0, 0, 0),), + (("?", 0, 0, 0, 0),), + (("?", 0, 0, 0, 1),), + (("idot", 0, 0, 0, 0),), + ), + ), + "loop": ( + "epsilon.svg", + ((("o0", 5, 0, 0, 1),), (("30", 5, 0, 0, 1),)), # loop-around elts + ), + "elike": ( + "epsilon.svg", + ( + (("e", 0, 0, 0, 0), ("crv", 0, 0, 1, 0)), + (("a", 0, 0, 0, 0), ("crv", 0, 0, 1, 0)), + (("crv", 0, 0, 0, 0), ("crv", 0, 0, 1, 0)), + ), + ), + "loop2": ("epsilon.svg", ((("elike", 0, 0, 0, 0),), (("loop", 0, 0, 0, 0),))), + "hlike": ( + "epsilon.svg", + ( + (("h", 0, 0, 0, 0),), # h-like extensions + (("m", 0, 0, 0, 0),), + (("crv", 0, 0, 0, 0),), + ), + ), + "crv": ( + "epsilon.svg", + ((("r", 0, 0, 0, 0),), (("cserif", 0, 0, 1, 0),)), # curvy things + ), + # image rules + "abase": ( + "abase.svg", + ( + (("n0", 0, 0, 1, 0), ("loop2", 0, 0, 0, 0)), + (("n0", 0, 0, 1, 0), ("loop2", 0, 0, 1, 0)), + (("b0", 0, 0, 1, 0), ("loop2", 0, 0, 0, 0)), + (("b0", 0, 0, 1, 0), ("loop2", 0, 0, 1, 0)), + ), + ), + "v": ( + "v.svg", + ( + (("vserl", 0, 0, 0, 0), ("vserr", 0, 0, 0, 0)), + (("vserl", 0, 0, 0, 0), ("vserr", 0, 0, 0, 0), ("y0", 0, 0, 0, 0)), + (("vserl", 0, 0, 0, 0), ("w", 6, 0, 0, 0)), + (("vserl", 0, 0, 0, 0), ("w", 6, 0, 0, 0), ("y0", 0, 0, 0, 0)), + ), + ), + "w": ( + "v.svg", + ((("vserr", 0, 0, 0, 0),), (("vserr", 0, 0, 0, 0), ("y0", 0, 0, 0, 0))), + ), + "y0": ( + "epsilon.svg", + ((("y", 0, 0, 0, 1),), (("y", 0, 0, 0, 0),), (("gamma", 0, 0, 0, 0),)), + ), + "l": ( + "l.svg", + ((("j", 0, 0, 0, 0),), (("j", 0, 0, 0, 1),), (("srf", 0, -4, 1, 0),)), + ), + "o": ("o.svg", ((("loop2", 0, 0, 0, 0),), (("loop2", 0, 0, 1, 0),))), + "cross": ("cross.svg", ((("t", 0, 0, 0, 0),), (("f0", 0, 0, 0, 0),))), + "f": ( + "f.svg", + ((("j", 0, 0, 0, 0),), (("j", 0, 0, 0, 1),), (("srf", 0, -4, 1, 0),)), + ), + "f0": ("f.svg", ((("j", 0, 0, 0, 0),), (("srf", 0, -4, 1, 0),))), + "idot": ( + "idot.svg", + ( + (("serif", 0, 0, 1, 0),), + (("lserif", 0, 0, 1, 0),), + (("lserif", 0, 0, 1, 1),), + ), + ), + "stik": ( + "f.svg", + ( + (("srf", 0, -4, 1, 0),), + # (('srf', 0,-4,1,1),), + ), + ), + "3": ("3.svg", ((("loop2", 0, 0, 0, 0),),)), + # uppercase + # Bar rules + "X": ( + "epsilon.svg", + ( + (("Xtb", 0, 0, 0, 0), ("Xtb", 0, -5, 1, 1)), + (("Xlr", 0, 0, 0, 0), ("Xlr", 0, -5, 1, 1)), + (("Xtb", 0, 0, 0, 0), ("Xtb2", 0, -5, 1, 1)), + (("Xlr", 0, 0, 0, 0), ("Xlr2", 0, -5, 1, 1)), + (("Xtb2", 0, 0, 0, 0), ("Xtb", 0, -5, 1, 1)), + (("Xlr2", 0, 0, 0, 0), ("Xlr", 0, -5, 1, 1)), + ), + ), + "Xtb": ( + "epsilon.svg", + ( + (("Xnw", 0, 0, 0, 0), ("Xne", 0, 0, 0, 0)), + (("Xne", 0, 0, 0, 0), ("Xh", 0, 0, 0, 0), ("Lterm2", 0, 0, 0, 0)), + (("Xnw", 0, 0, 0, 0), ("Xh", 0, 0, 0, 1), ("Lterm2", 0, 0, 0, 1)), + ( + ("Xne", 0, 0, 0, 0), + ("Xh", 0, 0, 0, 0), + ("Xnw", 0, 0, 0, 0), + ("Xh", 0, 0, 0, 1), + ), + ), + ), + "Xlr": ( + "epsilon.svg", + ( + (("Xne", 0, -5, 1, 1), ("Xnw", 0, 0, 0, 0)), + ( + ("Xne", 0, -5, 1, 1), + ("Xvt", 0, 0, 0, 0), + ("Xvb", 0, 0, 0, 0), + ("ITSerif", 0.5, 0, 0, 0), + ), + ( + ("Xnw", 0, 0, 0, 0), + ("Xvt", 0, 0, 0, 0), + ("Xvt", 0, -5, 1, 0), + ("IBSerif", 0, 0, 0, 0), + ), + ( + ("Xne", 0, -5, 1, 1), + ("Xnw", 0, 0, 0, 0), + ("Xvt", 0, 0, 0, 0), + ("Xvb", 0, 0, 0, 0), + ), + ), + ), + "Xtb2": ("epsilon.svg", ((("Xne", 0, 0, 0, 0),), (("Xnw", 0, 0, 0, 0),))), + "Xlr2": ("epsilon.svg", ((("Xnw", 0, 0, 0, 0),), (("Xne", 0, -5, 1, 1),))), + "Xne": ("Xne.svg",), + "Xnw": ("Xnw.svg",), + "Xh": ("Xh.svg",), + "Xvt": ("Xvt.svg",), + "Xvb": ("Xvb.svg",), + "Bar": ( + "barcap.svg", + ( + (("Bartop", 0, 0, 0, 0), ("Barbot", 0, 0, 0, 0), ("Barmid", 0, 0, 0, 0)), + (("Bartop2", 0, 0, 0, 0), ("Barbot2", 0, 0, 0, 0)), + ), + ), + "Bartop": ("epsilon.svg", ((("ITSerif", 0.5, 0, 0, 0),), (("Tt", 0, 0, 0, 0),))), + "Barbot": ("epsilon.svg", ((("IBSerif", 0, 0, 0, 0),), (("Tb", 0, 0, 0, 0),))), + "Barbot2": ("epsilon.svg", ((("Barbot", 0, 0, 0, 0),), (("Psi", 0, 0, 0, 0),))), + "Bartop2": ("epsilon.svg", ((("Bartop", 0, 0, 0, 0),), (("Psi", 0, -5, 1, 0),))), + "Barmid": ( + "epsilon.svg", + ( + ( + ("Hm", 0, 0, 0, 0), + ("Eserif", 0, 0, 0, 0), + ("Hm", -7.5, 0, 0, 1), + ("Eserif", -7.5, 0, 0, 1), + ), + (("P", -2.5, 3, 0, 0), ("P", -5, 3, 0, 1)), + (("P", -5, 3, 0, 1),), # points left + ), + ), + "Psi": ( + "epsilon.svg", + ((("IBSerif", 0, 0, 0, 0), ("R", -2.5, 0, 0, 0), ("R", -5, 0, 0, 1)),), + ), + # D / E / F / H / L rules + "D": ( + "epsilon.svg", + ( + (("Dterm", 0, 0, 0, 0), ("Dterm", 0, 0, 0, 1)), + (("Dterm", 0, 0, 0, 0), ("Dterm2", 0, 0, 0, 1)), + ), + ), + "E": ( + "epsilon.svg", + ( + (("Eterm", 0, 0, 0, 0), ("Eterm", 0, 0, 0, 1)), + (("Eterm", 0, 0, 0, 0), ("Eterm2", 0, 0, 0, 1)), + (("Eterm2", 0, 0, 0, 1), ("Eterm2", 0, -5, 1, 0)), # for S + ), + ), + "F": ( + "epsilon.svg", + ( + (("Fterm", 0, 0, 0, 0), ("Fterm", 0, 0, 0, 1)), + (("Fterm", 0, 0, 0, 0), ("Fterm2", 0, 0, 0, 1)), + ), + ), + "H": ( + "epsilon.svg", + ( + (("Hterm", 0, 0, 0, 0), ("Hterm", 0, 0, 0, 1)), + (("Hterm", 0, 0, 0, 0), ("Hterm2", 0, 0, 0, 1)), + ), + ), + "L": ( + "epsilon.svg", + ( + (("Lterm", 0, 0, 0, 0), ("Lterm", 0, 0, 0, 1)), + (("Lterm", 0, 0, 0, 0), ("Lterm2", 0, 0, 0, 1)), + ), + ), + "Dterm": ( + "epsilon.svg", + ( + (("Barterm", 0, 0, 0, 0), ("Et", 0, 0, 0, 0), ("Eb", 0, 0, 0, 0)), + (("O", 0, 0, 0, 0),), + ), + ), + "Dterm2": ( + "epsilon.svg", + ((("C", 0, 0, 0, 1),), (("Ltserif", 0, 0, 0, 1), ("Lbserif", 0, 0, 0, 1))), + ), + "Eterm": ( + "epsilon.svg", + ( + ( + ("Barterm", 0, 0, 0, 0), + ("Et", 0, 0, 0, 0), + ("Hm", 0, 0, 0, 0), + ("Eb", 0, 0, 0, 0), + ), + (("B", 0, 0, 0, 1),), + (("O", 0, 0, 0, 0), ("Ocross", 0, 0, 0, 0)), + (("Dterm", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1)), + (("Dterm2", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1)), + ), + ), + "Eterm2": ("epsilon.svg", ((("P", 0, 0, 0, 1), ("Lterm2", 0, -5, 1, 0)),)), + "Fterm": ( + "epsilon.svg", + ( + ( + ("Barterm", 0, 0, 0, 0), + ("Et", 0, 0, 0, 0), + ("Hm", 0, 0, 0, 0), + ("IBSerif", 0, 0, 0, 0), + ), + (("Lterm", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1)), + (("P", 0, 0, 0, 1), ("R", 0, 0, 0, 1)), + (("Ltserif", 0, 0, 0, 1), ("R", 0, 0, 0, 1)), + (("Ltserif", 0, 0, 0, 1), ("Rblock", 0, 0, 0, 1)), + (("Uterm", 0, 0, 0, 0), ("Ocross", 0, 0, 0, 0)), + ), + ), + "Fterm2": ( + "epsilon.svg", + ((("P", 0, 0, 0, 1),), (("Lterm2", 0, 0, 0, 0), ("Eserif", 0, 0, 0, 1))), + ), + "Hterm": ( + "epsilon.svg", + ( + ( + ("Barterm", 0, 0, 0, 0), + ("Hm", 0, 0, 0, 0), + ("ITSerif", 0.5, 0, 0, 0), + ("IBSerif", 0, 0, 0, 0), + ), + (("R", 0, 0, 0, 1), ("R", 0, -5, 1, 1)), + ), + ), + "Hterm2": ("epsilon.svg", ((("R", 0, 0, 0, 1),), (("Rblock", 0, 0, 0, 1),))), + "Lterm": ( + "epsilon.svg", + ( + (("Barterm", 0, 0, 0, 0), ("Et", 0, 0, 0, 0), ("IBSerif", 0, 0, 0, 0)), + (("Uterm", 0, 0, 0, 0),), + ), + ), + "Lterm2": ("epsilon.svg", ((("Ltserif", 0, 0, 0, 1),), (("Cserif", 0, -5, 1, 1),))), + "B": ("epsilon.svg", ((("P", 0, 0, 0, 0), ("P", 0, 6, 0, 0)),)), + "C": ("epsilon.svg", ((("Cserif", 0, 0, 0, 0), ("Cserif", 0, -5, 1, 0)),)), + "Cserif": ( + "epsilon.svg", + ( # (('Ctail', 0,0,0,0),), # I just hate the way these look... + (("Cblob", 0, 0, 0, 0),), + (("Chook", 0, -5, 1, 0),), + (("G", 0, 0, 0, 0),), + ), + ), + "O": ( + "epsilon.svg", + ((("Oterm", 0, 0, 0, 0),), (("Q", 0, 0, 0, 1),), (("Qu", 0, 0, 0, 1),)), + ), + "Qu": ("epsilon.svg", ((("Q", 0, -5, 1, 0),),)), + "Barterm": ("barcap.svg",), + "Ctail": ("Ctail.svg",), + "Chook": ("Chook.svg",), + "Cblob": ("Cblob.svg",), + "G": ("G.svg",), + "Ltserif": ("Lt.svg",), + "Lbserif": ("Lb.svg",), + "Et": ("Et.svg",), + "Eb": ("Eb.svg",), + "Hm": ("hcap.svg",), + "P": ("P.svg",), + "Tb": ("Tb.svg",), + "Tt": ("Tt.svg",), + "Ocross": ("Ocross.svg",), + "Oterm": ("ocap.svg",), + "Q": ("Q.svg",), + "R": ("rcap.svg", ((("IBSerif", -0.5, 0, 0, 1),),)), + "Rblock": ("Rblock.svg", ((("IBSerif", -0.5, 0, 0, 1),),)), + "Uterm": ("U.svg", ((("IBSerif", -0.5, 0, 0, 0),),)), + "IBSerif": ("IBSerif.svg",), + "ITSerif": ("ITSerif.svg",), + "Eserif": ("Eserif.svg",), + # V rules + "V": ( + "vcap.svg", + ((("V2", 0, 0, 0, 0),), (("V2", 0, 0, 0, 0), ("Across", 0, 0, 0, 0))), + ), + "V2": ( + "epsilon.svg", + ((("M", 0, 0, 0, 0),), (("Delta", 0, 0, 0, 0),), (("Vser", 0, 0, 0, 0),)), + ), + "M": ("mcap.svg", ((("IBSerif", -1.5, 0, 0, 0), ("IBSerif", 1.5, 0, 0, 1)),)), + "Delta": ("Delta.svg",), + "Vser": ("Vser.svg",), + "Across": ("acap.svg",), + # single daughter rules + "b": ( + "b.svg", + ( + (("hlike", 0, 0, 0, 0), ("f", 0, 0, 0, 0)), + # (('hlike', 0,0,0,0), ('f', 0,0,0,1),), + ), + ), + "b1": ( + "b.svg", + ( + (("loop", 0, 0, 0, 0), ("f", 0, 0, 0, 0)), + # (('loop', 0,0,0,0), ('f', 0,0,0,1),), + ), + ), + "b0": ( + "b.svg", + ( + (("f", 0, 0, 0, 0),), + # (('f', 0,0,0,1),), + ), + ), + "h": ("h.svg", ((("vert", 5, 0, 1, 0),),)), + "m": ( + "m.svg", + ((("h", 5, 0, 0, 0), ("vert", 5, 0, 1, 0)),), + ), # change later to allow 3 humped m + "n": ("n.svg", ((("hlike", 0, 0, 0, 0),),)), + "n1": ("n.svg", ((("loop", 0, 0, 0, 0),),)), + "s": ("s.svg", ((("crv", 0, 0, 0, 0), ("crv", 5, 0, 1, 1)),)), + "j": ("j.svg", ((("crv", 0, -5, 0, 0),),)), + "?": ("question.svg", ((("crv", -2.5, -5, 0, 0),),)), + "yogh": ("yogh.svg", ((("crv", -2.5, 4, 1, 0),),)), + # terminal rules + "2": ("2.svg",), + "30": ("3.svg",), + "7": ("7.svg",), + "a": ("a.svg",), + "cserif": ("cserif.svg",), + "e": ("e.svg",), + "k": ("k.svg",), + "n0": ("n.svg",), + "o0": ("o.svg",), + "r": ("r.svg",), + "serif": ("serif.svg",), + "tserif": ("tserif.svg",), + "lserif": ("lserif.svg",), + "t": ("t.svg",), + "x": ("x.svg",), + "z": ("z.svg",), + "vserl": ("vserl.svg",), + "vserr": ("vserr.svg",), + "y": ("y.svg",), + "gamma": ("gamma.svg",), +} + +alphabet = { + # Uppercase fix Y make 2) + "1": ( + "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.ITSerif.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]", + ), + "33": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.C.|.].Eserif.|.].Eterm.[.O.Ocross.].|.].].].]", + ), + "3": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.[.Dterm2.[.C.|.].Eserif.|.].|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.C.|.].Eserif.|.].Eterm.[.O.Ocross.].|.].].].]", + ), + "4": ( + "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].-.|.].].]", + ), + "5": ( + "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].Eterm2.[.P.|.Lterm2.[.Ltserif.|.].-.].|.].|.].-.|.].].]", + ), + "6": ( + "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]", + ), + "7": ( + "start.[.UC.[.UCb.[.X.[.Xtb.[.Xne.Xh.Lterm2.[.Ltserif.|.].].Xtb2.[.Xne.].-.|.].].].]", + ), + "8": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.[.B.[.P.P.].|.].|.].].].]", + ), + "9": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm2.[.P.|.Lterm2.-.].|.].|.].].]", + ), + "0": ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm.[.O.].|.].].].]",), + "A": ( + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].].].]", # no flip needed + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.Uterm.[.IBSerif.].Ocross.].|.].].].]", + "start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Vser.].Across.].|.].-.|.].].]", + ), + "B": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.B.[.P.P.].|.].Eterm.|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.Eserif.|.].Eterm.[.B.[.P.P.].|.].|.].].].]", + ), + "Be": ( + "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Barterm.Et.Hm.Eb.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]", # cyrillic + "start.[.UC.[.UCu.[.UCb.[.E.[.Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].|.].-.|.].].]", + ), + "C": ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm2.[.C.|.].|.].].].]",), + "D": ( + "start.[.UC.[.UCb.[.D.[.Dterm.Dterm.[.O.[.Oterm.].].|.].].].]", + "start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm2.[.Ltserif.|.Lbserif.|.].|.].|.].].].", + "start.[.UC.[.UCb.[.D.[.Dterm.[.Barterm.Et.Eb.].Dterm.[.Barterm.Et.Eb.].|.].].].]", + ), + "Delta": ("start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Delta.].].|.].-.|.].].]",), # Delta + "De": ( + "start.[.UC.[.UCu.[.UCb.[.D.[.Dterm.[.Barterm.Et.Eb.].Dterm.[.Barterm.Et.Eb.].|.].].-.|.].].]", + ), # Cyrillic + "E": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Dterm.[.O.].Eserif.|.].|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.B.[.P.P.].|.].|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.Eserif.|.].Eterm.[.Barterm.Et.Hm.Eb.].|.].|.].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm.[.Dterm2.Eserif.|.].|.].].].]", + ), + "Eth": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.O.].Eserif.|.].Eterm.[.Barterm.Et.Hm.Eb.].|.].|.].].]", + ), + "F": ("start.[.UC.[.UCb.[.F.[.Fterm.Fterm2.[.Lterm2.Eserif.|.].|.].].].]",), + "G": ( + "start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm2.[.C.[.Cserif.[.G.].Cserif.-.].|.].|.].].].]", + ), + "Gamma": ( + "start.[.UC.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm2.|.].].].]", + ), # Gamma + "H": ( + "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm.[.Barterm.Hm.ITSerif.IBSerif.].|.].].].]", + "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.R.[.IBSerif.|.].|.].|.].].].]", + "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].].]", + ), + "Che": ( + "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.Rblock.[.IBSerif.|.].|.].|.].].-.|.].].]", # Cyrillic + "start.[.UC.[.UCu.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm2.[.R.[.IBSerif.|.].|.].|.].].-.|.].].]", + ), + "Heng": ( + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].|.].].].]", + ), + "I": ( + "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.ITSerif.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]", + "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.Tt.].].Barbot2.[.Barbot.[.Tb.].].].].].]", + ), + "J": ( + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm2.|.].].-.|.].].]", + ), + "K": ( + "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].-.|.].].-.|.].].]", + "start.[.UC.[.UCb.[.H.[.Hterm.[.Barterm.Hm.ITSerif.IBSerif.].Hterm.[.R.[.IBSerif.|.].|.R.[.IBSerif.|.].-.|.].|.].].].]", + ), + "Zhe": ( + "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].-.].Barbot2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].].].].].]", + ), # Cyrillic + "L": ( + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm2.|.].|.].-.|.].].]", + ), + "Lambda": ("start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.Vser.].].|.].-.|.].].]",), # Lambda + "M": ( + "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].-.|.].].]", + "start.[.UC.[.UCb.[.V.[.V2.[.M.[.IBSerif.IBSerif.|.].].].|.].].]", + ), + "N": ( + "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].-.|.].].]", + "start.[.UC.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm.[.Barterm.Et.IBSerif.].|.].|.].].]", + ), + "NN": ( + "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].-.|.].].-.|.].].]", + ), # Cyrillic I + "O": ("start.[.UC.[.UCb.[.D.[.Dterm.[.O.].Dterm.[.O.].|.].].].]",), + "P": ( + "start.[.UC.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm2.[.P.|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Ltserif.|.R.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm2.[.P.|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm2.[.P.|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm2.[.P.|.].|.].].].]", + ), + "PL": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm.[.Barterm.Et.Eb.].Eserif.|.].Eterm2.[.P.|.Lterm2.-.].|.].].].]", + "start.[.UC.[.UCb.[.E.[.Eterm.[.Barterm.Et.Hm.Eb.].Eterm2.[.P.|.Lterm2.[.Cserif.-.|.].-.].|.].].].]", + ), + "Phi": ( + "start.[.UC.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.P.P.|.].].].].]", + ), + "Pi": ( + "start.[.UC.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].].]", + ), + "Psi": ( + "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Psi.[.IBSerif.R.[.IBSerif.|.].R.[.IBSerif.|.].|.].-.].Barbot2.[.Barbot.[.IBSerif.].].].].].]", + ), + "Soft": ( + "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Barterm.Et.Hm.IBSerif.].Fterm2.[.P.|.].|.].|.].-.|.].].]", # Cyrillic Yeru/Soft/Hard + "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm2.[.P.|.].|.].|.].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm2.[.P.|.].|.].|.].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Ltserif.|.Rblock.[.IBSerif.|.].|.].Fterm2.[.P.|.].|.].|.].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm2.[.P.|.].|.].|.].-.|.].].]", + ), + "Q": ( + "start.[.UC.[.UCb.[.D.[.Dterm.[.O.[.Oterm.].].Dterm.[.O.[.Q.|.].].|.].].].]", + ), + "R": ( + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.P.|.R.[.IBSerif.|.].|.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].].].]", + ), + "Ya": ( + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Barterm.Et.IBSerif.].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Lterm.[.Uterm.[.IBSerif.].].Eserif.|.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.P.|.R.[.IBSerif.|.].|.].Fterm.[.Barterm.Et.Hm.IBSerif.].|.].].].]", + "start.[.UC.[.UCb.[.F.[.Fterm.[.Uterm.[.IBSerif.].Ocross.].Fterm.[.P.|.R.[.IBSerif.|.].|.].|.].|.].].]", + ), + "S": ( + "start.[.UC.[.UCb.[.E.[.Eterm2.[.P.|.Lterm2.-.].|.Eterm2.[.P.|.Lterm2.-.].-.].|.].].]", + ), + "Sigma": ( + "start.[.UC.[.UCb.[.X.[.Xtb.[.Xnw.Xh.|.Lterm2.|.].Xtb.[.Xne.Xh.Lterm2.].-.|.].].].]", + ), + "T": ( + "start.[.UC.[.UCb.[.Bar.[.Bartop2.[.Bartop.[.Tt.].].Barbot2.[.Barbot.[.IBSerif.].].].].].]", + "start.[.UC.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.Hm.Eserif.Hm.|.Eserif.|.].].].].]", + ), + "Theta": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.O.Ocross.].Eterm.[.O.Ocross.].|.].].].]", + ), + "Thorn": ( + "start.[.UC.[.UCu.[.UCb.[.Bar.[.Bartop.[.ITSerif.].Barbot.[.IBSerif.].Barmid.[.P.|.].].].-.|.].].]", + ), + "U": ( + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].|.].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Uterm.[.IBSerif.].].|.].].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Uterm.[.IBSerif.].].Lterm.[.Uterm.[.IBSerif.].].|.].].-.|.].].]", + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].-.|.].].]", + ), + "Tse": ( + "start.[.UC.[.UCu.[.UCb.[.L.[.Lterm.[.Barterm.Et.IBSerif.].Lterm.[.Barterm.Et.IBSerif.].|.].].-.|.].].]", + ), # Cyrillic + "V": ("start.[.UC.[.UCb.[.V.[.V2.[.Vser.].].|.].].]",), + "W": ( + "start.[.UC.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xvt.Xvb.ITSerif.].Xlr.[.Xnw.Xvt.Xvt.-.IBSerif.].-.|.].].].]", + "start.[.UC.[.UCu.[.UCb.[.V.[.V2.[.M.[.IBSerif.IBSerif.|.].].].|.].-.|.].].]", + ), + "X": ( + "start.[.UC.[.UCu.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr.[.Xne.-.|.Xnw.].-.|.].].-.|.].].]", + "start.[.UC.[.UCb.[.H.[.Hterm.[.R.|.R.-.|.].Hterm.[.R.|.R.-.|.].|.].].].]", + ), + "Xi": ( + "start.[.UC.[.UCb.[.E.[.Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].Eterm.[.Dterm2.[.Ltserif.|.Lbserif.|.].Eserif.|.].|.].|.].].]", + ), + "Y": ("start.[.UC.[.UCb.[.X.[.Xlr.[.Xne.-.|.Xnw.].Xlr2.[.Xne.-.|.].-.|.].].].]",), + "Z": ( + "start.[.UC.[.UCb.[.X.[.Xtb.[.Xne.Xh.Lterm2.].Xtb.[.Xne.Xh.Lterm2.].-.|.].].].]", + ), + # Lowercase + "a": ( + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.n0.-.loop2.[.elike.[.a.crv.-.].].-.].|.].].].].]", + "start.[.lc.[.barsym.[.bar.[.n1.[.loop.].n0.-.].-.|.].].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.n0.-.loop2.[.loop.].].|.].].].].]", + ), + "carat": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.].-.|.].].].]",), + "b": ( + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].].].].]", + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].].].].]", + ), + "c": ( + "start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.elike.[.crv.-.|.crv.|.].|.].].].].].]", + ), + "d": ( + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].|.].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].|.].].].]", + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].|.].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].|.].].].]", + ), + "e": ( + "start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.elike.[.e.crv.-.].].].].].].]", + "start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.elike.[.crv.crv.-.].].].].].].].]", + ), + "epsi": ( + "start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.elike.[.crv.crv.-.].].].].].].].]", + ), + "f": ( + "start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.cross.[.f0.[.j.].].].].vert.-.].].].]", + ), + "g": ( + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.[.j.[.crv.].].].n0.-.].-.|.].].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].].-.].-.|.].].].]", + ), + "gamma": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.[.gamma.].].].].].]",), + "h": ( + "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.].f.].vert.-.].].].]", + "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.].f.|.].vert.-.].].].]", + ), + "heng": ( + "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.[.vert.[.xtnd.[.l.[.j.[.crv.].].].|.].-.].].f.[.j.[.crv.].].].vert.[.srf.-.|.].-.].].].]", + ), + "i": ( + "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.idot.].-.].].-.|.].].]", + "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.idot.].-.].|.].-.|.].].]", + ), + "j": ( + "start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.idot.].-.].vert.[.xtnd.[.l.[.j.].].].|.].-.].].]", + ), + "k": ("start.[.lc.[.barsym.[.bar.[.k.vert.vert.-.].].].]",), + "l": ( + "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.l.].-.].|.].-.|.].].]", + "start.[.lc.[.barsym.[.bar.[.vert.vert.[.xtnd.[.l.|.].-.].|.].-.|.].].]", + ), + "lambda": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.].-.|.].].].]",), + "m": ( + "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].].vert.-.].].].]", + ), + "mu": ( + "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.h.[.vert.-.].].f.].vert.-.].-.|.].].]", + ), + "muu": ( + "start.[.lc.[.barsym.[.bar.[.b.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].f.].vert.-.|.].-.|.].].]", + ), + "n": ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.-.].].].vert.-.].].].]",), + "ng": ( + "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.[.xtnd.[.l.[.j.].].|.].-.].].].vert.-.].].].]", + ), + "o": ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.loop.[.o0.|.].].].].].].]",), + "p": ( + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].-.].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].-.].].].]", + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].-.].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].-.].].].]", + ), + "q": ( + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.].n0.-.].].-.|.].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.].-.loop2.[.loop.].].-.].-.|.].].].]", + "start.[.lc.[.barsym.[.bar.[.b1.[.loop.f.|.].n0.-.].].-.|.].]", + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.|.].-.loop2.[.loop.].].-.].-.|.].].].]", + ), + "r": ("start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.crv.].].vert.-.].].].]",), + "s": ("start.[.lc.[.lc2.[.lc3.[.ssym.[.s.[.crv.crv.-.|.].].].].].]",), + "t": ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.cross.[.f0.].].].vert.-.].].].]",), + "u": ( + "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.h.[.vert.-.].].].vert.-.].-.|.].].]", + ), + "uu": ( + "start.[.lc.[.barsym.[.bar.[.n.[.hlike.[.m.[.h.[.vert.-.].vert.-.].].].vert.-.].-.|.].].]", + ), + "v": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.].].].].]",), + "w": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.w.[.vserr.].].].].].]",), + "x": ("start.[.lc.[.lc2.[.dsym.[.diag.[.x.].-.diag.[.x.].|.].-.].].]",), + "y": ("start.[.lc.[.lc2.[.vsym.[.v.[.vserl.vserr.y0.].].].].]",), + "yogh": ( + "start.[.lc.[.lc2.[.dsym.[.diag.[.z.].|.diag.[.yogh.[.crv.-.].-.|.].-.].].].]", + ), + "z": ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].diag.[.z.].-.|.].|.].].]",), + "glot": ("start.[.lc.[.barsym.[.bar.[.vert.[.xtnd.[.?.|.].].vert.-.].].].]",), + "1l": ( + "start.[.lc.[.barsym.[.bar.[.vert.[.srf.[.lserif.].].vert.[.srf.[.serif.].-.].|.].].-.].]", + ), + "2l": ("start.[.lc.[.lc2.[.dsym.[.diag.[.2.].diag.[.z.].-.|.].|.].].]",), + "3l": ( + "start.[.lc.[.lc2.[.dsym.[.diag.[.z.].|.diag.[.yogh.[.crv.-.].-.|.].-.].].].]", + ), + "6l": ( + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].-.].-.].].].].]", + ), + "7l": ("start.[.lc.[.lc2.[.dsym.[.diag.[.z.].diag.[.7.].-.|.].|.].].]",), + "8l": ("start.[.lc.[.lc2.[.lc3.[.3sym.[.3.[.loop2.[.loop.[.30.|.].].].].].].].]",), + "9l": ( + "start.[.lc.[.lc2.[.lc3.[.asym.[.abase.[.b0.[.f.[.j.].].-.loop2.[.loop.].-.].|.].].].].]", + ), + "0l": ("start.[.lc.[.lc2.[.osym.[.o.[.loop2.[.loop.[.o0.|.].].].].].].]",), +} + +space = 4 # number of unit boxes to make a " " space in string +units = 36 # pixels per unit box in font +font = "alphabet_soup/" # location of font images |