1cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Copyright 2014 The Chromium Authors. All rights reserved. 2cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be 3cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// found in the LICENSE file. 4cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 5cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 6cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @fileoverview Semantic attributes of Math symbols and expressions. 7cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 8cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * This file contains the basic functionality to lookup and assign semantic 9cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * attributes for mathematical expressions. Since there is no such thing as a 10cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * well-defined semantics for all of mathematics we compute a default semantics 11cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * that closely models mathematical expressions found in K-12 mathematics as 12cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * well as in general undergraduate curriculum (i.e., calculus, linear algebra, 13cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * etc). 14cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 15cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Currently semantic attributes of symbols consist of the following two parts: 16cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 17cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * type -- An unmutable property of an expression, regardless of its position in 18cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * the math expression. For example, the letter 'f' will always have the 19cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * type identifier, regardless of its use in context, e.g. as function 20cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * symbol or variable. 21cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 22cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * role -- A mutable description of the role an expression plays in the context 23cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * of the overall mathematical expression. For instance, the symbol '|' 24cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * is of type punctuation, but depending on context it has the role of a 25cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * neutral fence or of a single vertical bar. 26cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 27cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * In addition for some symbols we record the font as a further attribute. 28cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 29cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * When a semantically interpreted expression is transformed into a XML 30cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * representation, types become tag names, while role, font, etc. are added as 31cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * attributes. 32cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 33cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * This file is part of the content script as we do not want to call out to the 34cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * background page every time we need to look up the semantic of a symbol. 35cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 36cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * TODO (sorge) Move semantic tree translation into the background page 37cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * alongside MathJax. 38cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 39cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 40cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 41cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.provide('cvox.SemanticAttr'); 42cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 43cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.require('cvox.SemanticUtil'); 44cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 45cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 46cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 47cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Contains the basic mappings of characters/symbols and functions to semantic 48cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * attributes. 49cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * 50cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Observe that all characters are given as hex code number in order to ease the 51cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * comparison with those in the JSON files that define speech rules per 52cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * character. 53cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @constructor 54cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 55cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr = function() { 56cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Punctuation Characters. 57cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 58cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 59cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 60cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.generalPunctuations = 61cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 62cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '!', '"', '#', '%', '&', '\'', '*', ',', ':', ';', '?', '@', '\\', 63cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '¡', '§', '¶', '·', '¿', '‗', '†', '‡', '•', '‣', '․', '‥', '‧', 64cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '‰', '‱', '‸', '※', '‼', '‽', '‾', '⁁', '⁂', '⁃', '⁇', '⁈', '⁉', 65cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⁋', '⁌', '⁍', '⁎', '⁏', '⁐', '⁑', '⁓', '⁕', '⁖', '⁘', '⁙', '⁚', 66cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⁛', '⁜', '⁝', '⁞', '︐', '︓', '︔', '︕', '︖', '︰', '﹅', '﹆', 67cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '﹉', '﹊', '﹋', '﹌', '﹐', '﹔', '﹕', '﹖', '﹗', '﹟', '﹠', '﹡', '﹨', 68cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '﹪', '﹫', '!', '"', '#', '%', '&', ''', '*', ',', '/', ':', 69cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ';', '?', '@', '\' 70cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 71cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 72cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {string} 73cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 74cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 75cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.invisibleComma_ = cvox.SemanticUtil.numberToUnicode(0x2063); 76cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.generalPunctuations.push(this.invisibleComma_); 77cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 78cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 79cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 80cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.ellipses = 81cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 82cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '…', '⋮', '⋯', '⋰', '⋱', '︙' 83cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 84cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 85cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 86cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 87cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.fullStops = 88cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 89cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '.', '﹒', '.' 90cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 91cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 92cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 93cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 94cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.dashes = 95cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 96cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '‒', '–', '—', '―', '〜', '︱', '︲', '﹘' 97cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 98cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 99cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 100cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 101cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.primes = 102cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 103cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '′', '″', '‴', '‵', '‶', '‷', '⁗' 104cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 105cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 106cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Fences. 107cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Fences are treated slightly differently from other symbols as we want to 108cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // record pairs of opening/closing and top/bottom fences. 109cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 110cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Mapping opening to closing fences. 111cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Object.<string, string>} 112cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 113cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.openClosePairs = 114cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) { 115cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Unicode categories Ps and Pe. 116cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Observe that left quotation 301D could also be matched to 301F, 117cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // but is currently matched to 301E. 118cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '(': ')', '[': ']', '{': '}', '⁅': '⁆', '〈': '〉', '❨': '❩', 119cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '❪': '❫', '❬': '❭', '❮': '❯', '❰': '❱', '❲': '❳', '❴': '❵', 120cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⟅': '⟆', '⟦': '⟧', '⟨': '⟩', '⟪': '⟫', '⟬': '⟭', '⟮': '⟯', 121cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⦃': '⦄', '⦅': '⦆', '⦇': '⦈', '⦉': '⦊', '⦋': '⦌', '⦍': '⦎', 122cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⦏': '⦐', '⦑': '⦒', '⦓': '⦔', '⦕': '⦖', '⦗': '⦘', '⧘': '⧙', 123cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⧚': '⧛', '⧼': '⧽', '⸢': '⸣', '⸤': '⸥', '⸦': '⸧', '⸨': '⸩', 124cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '〈': '〉', '《': '》', '「': '」', '『': '』', '【': '】', 125cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '〔': '〕', '〖': '〗', '〘': '〙', '〚': '〛', '〝': '〞', 126cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '﴾': '﴿', '︗': '︘', '﹙': '﹚', '﹛': '﹜', '﹝': '﹞', '(': ')', 127cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '[': ']', '{': '}', '⦅': '⦆', '「': '」', 128cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Unicode categories Sm and So. 129cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⌈': '⌉', '⌊': '⌋', '⌌': '⌍', '⌎': '⌏', '⌜': '⌝', '⌞': '⌟', 130cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Extender fences. 131cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Parenthesis. 132cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⎛': '⎞', '⎜': '⎟', '⎝': '⎠', 133cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Square bracket. 134cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⎡': '⎤', '⎢': '⎥', '⎣': '⎦', 135cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Curly bracket. 136cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⎧': '⎫', '⎨': '⎬', '⎩': '⎭', '⎰': '⎱', '⎸': '⎹' 137cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }; 138cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 139cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Mapping top to bottom fences. 140cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Object.<string, string>} 141cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 142cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.topBottomPairs = 143cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) { 144cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⎴': '⎵', '⏜': '⏝', '⏞': '⏟', '⏠': '⏡', '︵': '︶', '︷': '︸', 145cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '︹': '︺', '︻': '︼', '︽': '︾', '︿': '﹀', '﹁': '﹂', 146cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '﹃': '﹄', '﹇': '﹈' 147cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }; 148cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 149cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 150cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 151cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.leftFences = cvox.SemanticUtil.objectsToKeys(this.openClosePairs); 152cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 153cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 154cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 155cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.rightFences = cvox.SemanticUtil.objectsToValues(this.openClosePairs); 156cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.rightFences.push('〟'); 157cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 158cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 159cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 160cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.topFences = cvox.SemanticUtil.objectsToKeys(this.topBottomPairs); 161cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 162cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 163cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 164cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.bottomFences = cvox.SemanticUtil.objectsToValues(this.topBottomPairs); 165cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 166cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 167cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 168cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.neutralFences = 169cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 170cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '|', '¦', '‖', '❘', '⦀', '⫴', '¦', '|' 171cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 172cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** Array of all fences. 173cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 174cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 175cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.fences = this.neutralFences.concat( 176cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.leftFences, this.rightFences, this.topFences, this.bottomFences); 177cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 178cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Identifiers. 179cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Latin Alphabets. 180cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 181cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 182cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 183cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatin = 184cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 185cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 186cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' 187cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 188cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 189cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 190cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 191cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatin = 192cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 193cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 194cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z', 195cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // dotless i and j. 196cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ı', 'ȷ' 197cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 198cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 199cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 200cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 201cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinFullWidth = 202cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 203cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'A', 'B', 'C', 'D', 'E', 'F', 'G', 'H', 'I', 'J', 'K', 'L', 'M', 204cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'N', 'O', 'P', 'Q', 'R', 'S', 'T', 'U', 'V', 'W', 'X', 'Y', 'Z' 205cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 206cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 207cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 208cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 209cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinFullWidth = 210cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 211cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j', 'k', 'l', 'm', 212cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'n', 'o', 'p', 'q', 'r', 's', 't', 'u', 'v', 'w', 'x', 'y', 'z' 213cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 214cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 215cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 216cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 217cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinBold = 218cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 219cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 220cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 221cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 222cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 223cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 224cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 225cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinBold = 226cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 227cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 228cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 229cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 230cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 231cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 232cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 233cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinItalic = 234cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 235cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 236cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 237cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 238cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 239cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 240cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 241cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinItalic = 242cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 243cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', 'ℎ', '', '', '', '', '', 244cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 245cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // dotless i and j. 246cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '' 247cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 248cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 249cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 250cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 251cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinScript = 252cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 253cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', 'ℬ', '', '', 'ℰ', 'ℱ', '', 'ℋ', 'ℐ', '', '', 'ℒ', 'ℳ', 254cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', 'ℛ', '', '', '', '', '', '', '', '', 255cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Powerset Cap P. 256cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '℘' 257cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 258cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 259cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 260cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 261cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinScript = 262cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 263cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', 'ℯ', '', 'ℊ', '', '', '', '', '', '', 264cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', 'ℴ', '', '', '', '', '', '', '', '', '', '', '', 265cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // script small l 266cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ℓ' 267cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 268cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 269cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 270cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 271cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinBoldScript = 272cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 273cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 274cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 275cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 276cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 277cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 278cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 279cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinBoldScript = 280cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 281cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 282cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 283cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 284cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 285cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 286cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 287cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinFraktur = 288cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 289cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', 'ℭ', '', '', '', '', 'ℌ', 'ℑ', '', '', '', '', 290cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', 'ℜ', '', '', '', '', '', '', '', 'ℨ' 291cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 292cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 293cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 294cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 295cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinFraktur = 296cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 297cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 298cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 299cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 300cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 301cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 302cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 303cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinDoubleStruck = 304cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 305cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', 'ℂ', '', '', '', '', 'ℍ', '', '', '', '', '', 306cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ℕ', '', 'ℙ', 'ℚ', 'ℝ', '', '', '', '', '', '', '', 'ℤ' 307cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 308cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 309cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 310cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 311cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinDoubleStruck = 312cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 313cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 314cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 315cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 316cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 317cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 318cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 319cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinBoldFraktur = 320cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 321cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 322cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 323cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 324cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 325cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 326cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 327cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinBoldFraktur = 328cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 329cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 330cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 331cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 332cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 333cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 334cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 335cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinSansSerif = 336cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 337cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 338cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 339cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 340cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 341cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 342cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 343cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinSansSerif = 344cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 345cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 346cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 347cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 348cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 349cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 350cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 351cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinSansSerifBold = 352cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 353cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 354cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 355cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 356cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 357cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 358cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 359cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinSansSerifBold = 360cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 361cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 362cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 363cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 364cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 365cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 366cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 367cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinSansSerifItalic = 368cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 369cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 370cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 371cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 372cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 373cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 374cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 375cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinSansSerifItalic = 376cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 377cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 378cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 379cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 380cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 381cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 382cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 383cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalLatinMonospace = 384cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 385cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 386cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 387cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 388cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 389cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 390cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 391cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallLatinMonospace = 392cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 393cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 394cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '' 395cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 396cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 397cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 398cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 399cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.latinDoubleStruckItalic = 400cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 401cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ⅅ', 'ⅆ', 'ⅇ', 'ⅈ', 'ⅉ' 402cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 403cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 404cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Greek Alphabets 405cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 406cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 407cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 408cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalGreek = 409cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 410cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'Α', 'Β', 'Γ', 'Δ', 'Ε', 'Ζ', 'Η', 'Θ', 'Ι', 'Κ', 'Λ', 'Μ', 'Ν', 411cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'Ξ', 'Ο', 'Π', 'Ρ', 'Σ', 'Τ', 'Υ', 'Φ', 'Χ', 'Ψ', 'Ω' 412cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 413cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 414cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 415cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 416cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallGreek = 417cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 418cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'α', 'β', 'γ', 'δ', 'ε', 'ζ', 'η', 'θ', 'ι', 'κ', 'λ', 'μ', 'ν', 419cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ξ', 'ο', 'π', 'ρ', 'ς', 'σ', 'τ', 'υ', 'φ', 'χ', 'ψ', 'ω' 420cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 421cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 422cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 423cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 424cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalGreekBold = 425cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 426cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 427cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '' 428cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 429cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 430cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 431cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 432cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallGreekBold = 433cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 434cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 435cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '' 436cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 437cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 438cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 439cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 440cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalGreekItalic = 441cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 442cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 443cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '' 444cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 445cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 446cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 447cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 448cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallGreekItalic = 449cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 450cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 451cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '' 452cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 453cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 454cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 455cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 456cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.capitalGreekSansSerifBold = 457cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 458cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 459cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '' 460cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 461cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 462cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 463cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 464cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.smallGreekSansSerifBold = 465cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 466cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '', '', 467cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '', '' 468cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 469cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 470cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 471cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 472cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.greekDoubleStruck = 473cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 474cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ℼ', 'ℽ', 'ℾ', 'ℿ' 475cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 476cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 477cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Other alphabets. 478cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 479cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 480cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 481cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.hebrewLetters = 482cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 483cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'ℵ', 'ℶ', 'ℷ', 'ℸ' 484cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 485cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 486cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) //Operator symbols 487cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 488cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 489cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 490cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.additions = 491cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 492cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '+', '±', '∓', '∔', '∧', '∨', '∩', '∪', '⊌', '⊓', '⊔', '⊝', '⊞', 493cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⊤', '⊥', '⊺', '⊻', '⊼', '⋄', '⋎', '⋏', '⋒', '⋓', '△', '▷', '▽', 494cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '◁', '⩞', '⊕' 495cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 496cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 497cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 498cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 499cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 500cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Invisible operator for plus. 501cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {string} 502cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 503cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 504cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.invisiblePlus_ = cvox.SemanticUtil.numberToUnicode(0x2064); 505cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.additions.push(this.invisiblePlus_); 506cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 507cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 508cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 509cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.multiplications = 510cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 511cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '†', '‡', '∐', '∗', '∘', '∙', '≀', '⊚', '⊛', '⊠', '⊡', '⋅', '⋆', '⋇', 512cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⋉', '⋊', '⋋', '⋌', '○' 513cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 514cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 515cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Invisible operator for multiplication. 516cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {string} 517cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 518cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 519cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.invisibleTimes_ = cvox.SemanticUtil.numberToUnicode(0x2062); 520cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.multiplications.push(this.invisibleTimes_); 521cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 522cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 523cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 524cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.subtractions = 525cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 526cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '-', '⁒', '⁻', '₋', '−', '∖', '∸', '≂', '⊖', '⊟', '➖', '⨩', '⨪', 527cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⨫', '⨬', '⨺', '⩁', '⩬', '﹣', '-', '‐', '‑' 528cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 529cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 530cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 531cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 532cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.divisions = 533cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 534cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '/', '÷', '⁄', '∕', '⊘', '⟌', '⦼', '⨸' 535cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 536cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 537cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Invisible operator for function application. 538cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {string} 539cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 540cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 541cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.functionApplication_ = cvox.SemanticUtil.numberToUnicode(0x2061); 542cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 543cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) //Relation symbols 544cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 545cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 546cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 547cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.equalities = 548cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 549cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '=', '~', '⁼', '₌', '∼', '∽', '≃', '≅', '≈', '≊', '≋', '≌', '≍', 550cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '≎', '≑', '≒', '≓', '≔', '≕', '≖', '≗', '≘', '≙', '≚', '≛', '≜', 551cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '≝', '≞', '≟', '≡', '≣', '⧤', '⩦', '⩮', '⩯', '⩰', '⩱', '⩲', '⩳', 552cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⩴', '⩵', '⩶', '⩷', '⩸', '⋕', '⩭', '⩪', '⩫', '⩬', '﹦', '=' 553cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 554cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 555cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 556cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 557cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.inequalities = 558cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 559cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '<', '>', '≁', '≂', '≄', '≆', '≇', '≉', '≏', '≐', '≠', '≢', '≤', 560cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '≥', '≦', '≧', '≨', '≩', '≪', '≫', '≬', '≭', '≮', '≯', '≰', '≱', 561cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '≲', '≳', '≴', '≵', '≶', '≷', '≸', '≹', '≺', '≻', '≼', '≽', '≾', 562cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '≿', '⊀', '⊁', '⋖', '⋗', '⋘', '⋙', '⋚', '⋛', '⋜', '⋝', '⋞', '⋟', 563cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⋠', '⋡', '⋢', '⋣', '⋤', '⋥', '⋦', '⋧', '⋨', '⋩', '⩹', '⩺', '⩻', 564cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⩼', '⩽', '⩾', '⩿', '⪀', '⪁', '⪂', '⪃', '⪄', '⪅', '⪆', '⪇', '⪈', 565cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⪉', '⪊', '⪋', '⪌', '⪍', '⪎', '⪏', '⪐', '⪑', '⪒', '⪓', '⪔', '⪕', 566cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⪖', '⪗', '⪘', '⪙', '⪚', '⪛', '⪜', '⪝', '⪞', '⪟', '⪠', '⪡', '⪢', 567cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⪣', '⪤', '⪥', '⪦', '⪧', '⪨', '⪩', '⪪', '⪫', '⪬', '⪭', '⪮', '⪯', 568cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⪰', '⪱', '⪲', '⪳', '⪴', '⪵', '⪶', '⪷', '⪸', '⪹', '⪺', '⪻', '⪼', 569cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⫷', '⫸', '⫹', '⫺', '⧀', '⧁', '﹤', '﹥', '<', '>' 570cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 571cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 572cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 573cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 574cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.relations = 575cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 576cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // TODO (sorge): Add all the other relations. 577cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 578cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 579cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 580cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 581cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.arrows = 582cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 583cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '←', '↑', '→', '↓', '↔', '↕', '↖', '↗', '↘', '↙', '↚', '↛', '↜', 584cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '↝', '↞', '↟', '↠', '↡', '↢', '↣', '↤', '↥', '↦', '↧', '↨', '↩', 585cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '↪', '↫', '↬', '↭', '↮', '↯', '↰', '↱', '↲', '↳', '↴', '↵', '↶', 586cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '↷', '↸', '↹', '↺', '↻', '⇄', '⇅', '⇆', '⇇', '⇈', '⇉', '⇊', '⇍', 587cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⇎', '⇏', '⇐', '⇑', '⇒', '⇓', '⇔', '⇕', '⇖', '⇗', '⇘', '⇙', '⇚', 588cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⇛', '⇜', '⇝', '⇞', '⇟', '⇠', '⇡', '⇢', '⇣', '⇤', '⇥', '⇦', '⇧', 589cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⇨', '⇩', '⇪', '⇫', '⇬', '⇭', '⇮', '⇯', '⇰', '⇱', '⇲', '⇳', '⇴', 590cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⇵', '⇶', '⇷', '⇸', '⇹', '⇺', '⇻', '⇼', '⇽', '⇾', '⇿', '⌁', '⌃', 591cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⌄', '⌤', '⎋', '➔', '➘', '➙', '➚', '➛', '➜', '➝', '➞', '➟', '➠', 592cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '➡', '➢', '➣', '➤', '➥', '➦', '➧', '➨', '➩', '➪', '➫', '➬', '➭', 593cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '➮', '➯', '➱', '➲', '➳', '➴', '➵', '➶', '➷', '➸', '➹', '➺', '➻', 594cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '➼', '➽', '➾', '⟰', '⟱', '⟲', '⟳', '⟴', '⟵', '⟶', '⟷', '⟸', '⟹', 595cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⟺', '⟻', '⟼', '⟽', '⟾', '⟿', '⤀', '⤁', '⤂', '⤃', '⤄', '⤅', '⤆', 596cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⤇', '⤈', '⤉', '⤊', '⤋', '⤌', '⤍', '⤎', '⤏', '⤐', '⤑', '⤒', '⤓', 597cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⤔', '⤕', '⤖', '⤗', '⤘', '⤙', '⤚', '⤛', '⤜', '⤝', '⤞', '⤟', '⤠', 598cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⤡', '⤢', '⤣', '⤤', '⤥', '⤦', '⤧', '⤨', '⤩', '⤪', '⤭', '⤮', '⤯', 599cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⤰', '⤱', '⤲', '⤳', '⤴', '⤵', '⤶', '⤷', '⤸', '⤹', '⤺', '⤻', '⤼', 600cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⤽', '⤾', '⤿', '⥀', '⥁', '⥂', '⥃', '⥄', '⥅', '⥆', '⥇', '⥈', '⥉', 601cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⥰', '⥱', '⥲', '⥳', '⥴', '⥵', '⥶', '⥷', '⥸', '⥹', '⥺', '⥻', '⦳', 602cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⦴', '⦽', '⧪', '⧬', '⧭', '⨗', '⬀', '⬁', '⬂', '⬃', '⬄', '⬅', '⬆', 603cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⬇', '⬈', '⬉', '⬊', '⬋', '⬌', '⬍', '⬎', '⬏', '⬐', '⬑', '⬰', '⬱', 604cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⬲', '⬳', '⬴', '⬵', '⬶', '⬷', '⬸', '⬹', '⬺', '⬻', '⬼', '⬽', '⬾', 605cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⬿', '⭀', '⭁', '⭂', '⭃', '⭄', '⭅', '⭆', '⭇', '⭈', '⭉', '⭊', '⭋', 606cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⭌', '←', '↑', '→', '↓', 607cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Harpoons 608cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '↼', '↽', '↾', '↿', '⇀', '⇁', '⇂', '⇃', '⇋', '⇌', '⥊', '⥋', '⥌', 609cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⥍', '⥎', '⥏', '⥐', '⥑', '⥒', '⥓', '⥔', '⥕', '⥖', '⥗', '⥘', '⥙', 610cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⥚', '⥛', '⥜', '⥝', '⥞', '⥟', '⥠', '⥡', '⥢', '⥣', '⥤', '⥥', '⥦', 611cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⥧', '⥨', '⥩', '⥪', '⥫', '⥬', '⥭', '⥮', '⥯', '⥼', '⥽', '⥾', '⥿' 612cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 613cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 614cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) //Big operation symbols 615cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 616cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 617cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 618cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.sumOps = 619cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 620cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⅀', // double struck 621cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '∏', '∐', '∑', '⋀', '⋁', '⋂', '⋃', '⨀', '⨁', '⨂', '⨃', '⨄', '⨅', 622cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⨆', '⨇', '⨈', '⨉', '⨊', '⨋', '⫼', '⫿' 623cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 624cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 625cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 626cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 627cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.intOps = 628cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 629cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '∫', '∬', '∭', '∮', '∯', '∰', '∱', '∲', '∳', '⨌', '⨍', '⨎', '⨏', 630cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⨐', '⨑', '⨒', '⨓', '⨔', '⨕', '⨖', '⨗', '⨘', '⨙', '⨚', '⨛', '⨜' 631cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 632cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 633cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 634cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 635cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.prefixOps = 636cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // TODO (sorge) Insert nabla, differential operators etc. 637cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 638cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '∀', '∃' 639cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 640cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 641cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 642cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 643cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.operatorBits = 644cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // TODO (sorge) What to do if single glyphs of big ops occur on their own. 645cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 646cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⌠', '⌡', '⎶', '⎪', '⎮', '⎯', '⎲', '⎳', '⎷' 647cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 648cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 649cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Accents. 650cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // TODO (sorge) Add accented characters. 651cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 652cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Numbers. 653cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Digits. 654cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 655cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 656cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 657cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsNormal = 658cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 659cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 660cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 661cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 662cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 663cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 664cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsFullWidth = 665cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 666cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '0', '1', '2', '3', '4', '5', '6', '7', '8', '9' 667cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 668cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 669cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 670cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 671cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsBold = 672cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 673cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '' 674cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 675cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 676cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 677cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 678cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsDoubleStruck = 679cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 680cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '' 681cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 682cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 683cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 684cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 685cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsSansSerif = 686cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 687cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '' 688cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 689cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 690cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 691cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 692cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsSansSerifBold = 693cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 694cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '' 695cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 696cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 697cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 698cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 699cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsMonospace = 700cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 701cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '' 702cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 703cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 704cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 705cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 706cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsSuperscript = 707cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 708cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '²', '³', '¹', '⁰', '⁴', '⁵', '⁶', '⁷', '⁸', '⁹' 709cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 710cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 711cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 712cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 713cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsSubscript = 714cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 715cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '₀', '₁', '₂', '₃', '₄', '₅', '₆', '₇', '₈', '₉' 716cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 717cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 718cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 719cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 720cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.fractions = 721cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 722cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '¼', '½', '¾', '⅐', '⅑', '⅒', '⅓', '⅔', '⅕', '⅖', '⅗', '⅘', '⅙', 723cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⅚', '⅛', '⅜', '⅝', '⅞', '⅟', '↉' 724cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 725cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 726cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 727cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 728cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.enclosedNumbers = 729cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Encircled numbers. 730cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 731cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '①', '②', '③', '④', '⑤', '⑥', '⑦', '⑧', '⑨', '⑩', '⑪', '⑫', '⑬', 732cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⑭', '⑮', '⑯', '⑰', '⑱', '⑲', '⑳', '⓪', '⓫', '⓬', '⓭', '⓮', '⓯', 733cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⓰', '⓱', '⓲', '⓳', '⓴', '⓵', '⓶', '⓷', '⓸', '⓹', '⓺', '⓻', '⓼', 734cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⓽', '⓾', '⓿', '❶', '❷', '❸', '❹', '❺', '❻', '❼', '❽', '❾', '❿', 735cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '➀', '➁', '➂', '➃', '➄', '➅', '➆', '➇', '➈', '➉', '➊', '➋', '➌', 736cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '➍', '➎', '➏', '➐', '➑', '➒', '➓', '㉈', '㉉', '㉊', '㉋', '㉌', 737cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '㉍', '㉎', '㉏', '㉑', '㉒', '㉓', '㉔', '㉕', '㉖', '㉗', '㉘', 738cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '㉙', '㉚', '㉛', '㉜', '㉝', '㉞', '㉟', '㊱', '㊲', '㊳', '㊴', 739cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '㊵', '㊶', '㊷', '㊸', '㊹', '㊺', '㊻', '㊼', '㊽', '㊾', '㊿']; 740cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 741cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 742cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 743cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.fencedNumbers = 744cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Numbers in Parenthesis. 745cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 746cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⑴', '⑵', '⑶', '⑷', '⑸', '⑹', '⑺', '⑻', '⑼', '⑽', '⑾', '⑿', '⒀', 747cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⒁', '⒂', '⒃', '⒄', '⒅', '⒆', '⒇' 748cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 749cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 750cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 751cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 752cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.punctuatedNumbers = 753cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Numbers with other punctuation. 754cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ['⒈', '⒉', '⒊', '⒋', '⒌', '⒍', '⒎', '⒏', '⒐', '⒑', '⒒', '⒓', '⒔', 755cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '⒕', '⒖', '⒗', '⒘', '⒙', '⒚', '⒛', // full stop. 756cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '', '', '', '', '', '' // comma. 757cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 758cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** Array of all single digits. 759cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 760cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 761cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digits = this.digitsNormal.concat( 762cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsFullWidth, this.digitsBold, this.digitsDoubleStruck, 763cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsSansSerif, this.digitsSansSerifBold, this.digitsMonospace); 764cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** Array of all non-digit number symbols. 765cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 766cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 767cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.numbers = this.fractions.concat( 768cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.digitsSuperscript, this.digitsSubscript, 769cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.enclosedNumbers, this.fencedNumbers, this.punctuatedNumbers); 770cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** Array of all number symbols. 771cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 772cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 773cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.allNumbers = this.digits.concat(this.numbers); 774cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 775cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Functions. 776cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 777cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 778cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 779cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.trigonometricFunctions = 780cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 781cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'cos', 'cot', 'csc', 'sec', 'sin', 'tan', 'arccos', 'arccot', 782cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'arccsc', 'arcsec', 'arcsin', 'arctan' 783cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 784cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 785cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 786cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 787cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.hyperbolicFunctions = 788cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 789cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'cosh', 'coth', 'csch', 'sech', 'sinh', 'tanh', 790cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'arcosh', 'arcoth', 'arcsch', 'arsech', 'arsinh', 'artanh', 791cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'arccosh', 'arccoth', 'arccsch', 'arcsech', 'arcsinh', 'arctanh' 792cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 793cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 794cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 795cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 796cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.algebraicFunctions = 797cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 798cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'deg', 'det', 'dim', 'hom', 'ker', 'Tr', 'tr' 799cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 800cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 801cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 802cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 803cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.elementaryFunctions = 804cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 805cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'log', 'ln', 'lg', 'exp', 'expt', 'gcd', 'gcd', 'arg', 'im', 're', 'Pr' 806cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 807cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** All predefined prefix functions. 808cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 809cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 810cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.prefixFunctions = this.trigonometricFunctions.concat( 811cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.hyperbolicFunctions, 812cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.algebraicFunctions, 813cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.elementaryFunctions 814cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ); 815cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** Limit functions are handled separately as they can have lower (and upper) 816cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * limiting expressions. 817cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 818cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 819cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.limitFunctions = 820cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 821cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'inf', 'lim', 'liminf', 'limsup', 'max', 'min', 'sup', 'injlim', 822cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'projlim' 823cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 824cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 825cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<string>} 826cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 827cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.infixFunctions = 828cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) [ 829cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 'mod', 'rem' 830cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 831cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) /** 832cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Default assignments of semantic attributes. 833cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @type {Array.<{set: Array.<string>, 834cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * role: cvox.SemanticAttr.Role, 835cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * type: cvox.SemanticAttr.Type, 836cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * font: cvox.SemanticAttr.Font}>} The semantic meaning of the symbol. 837cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 838cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 839cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.symbolSetToSemantic_ = [ 840cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Punctuation 841cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.generalPunctuations, 842cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.PUNCTUATION, 843cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.UNKNOWN 844cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 845cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.ellipses, 846cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.PUNCTUATION, 847cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.ELLIPSIS 848cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 849cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.fullStops, 850cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.PUNCTUATION, 851cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.FULLSTOP 852cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 853cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.dashes, 854cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.PUNCTUATION, 855cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.DASH 856cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 857cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.primes, 858cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.PUNCTUATION, 859cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.PRIME 860cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 861cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Fences 862cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.leftFences, 863cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FENCE, 864cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.OPEN 865cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 866cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.rightFences, 867cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FENCE, 868cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.CLOSE 869cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 870cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.topFences, 871cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FENCE, 872cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.TOP 873cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 874cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.bottomFences, 875cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FENCE, 876cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.BOTTOM 877cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 878cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.neutralFences, 879cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FENCE, 880cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.NEUTRAL 881cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 882cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Single characters. 883cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Latin alphabets. 884cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatin, 885cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 886cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 887cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 888cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 889cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatin, 890cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 891cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 892cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 893cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 894cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinFullWidth, 895cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 896cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 897cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 898cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 899cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinFullWidth, 900cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 901cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 902cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 903cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 904cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinBold, 905cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 906cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 907cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLD 908cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 909cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinBold, 910cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 911cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 912cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLD 913cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 914cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinItalic, 915cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 916cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 917cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.ITALIC 918cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 919cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinItalic, 920cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 921cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 922cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.ITALIC 923cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 924cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinScript, 925cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 926cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 927cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SCRIPT 928cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 929cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinScript, 930cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 931cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 932cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SCRIPT 933cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 934cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinBoldScript, 935cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 936cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 937cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLDSCRIPT 938cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 939cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinBoldScript, 940cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 941cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 942cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLDSCRIPT 943cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 944cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinFraktur, 945cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 946cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 947cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.FRAKTUR 948cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 949cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinFraktur, 950cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 951cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 952cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.FRAKTUR 953cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 954cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinDoubleStruck, 955cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 956cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 957cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.DOUBLESTRUCK 958cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 959cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinDoubleStruck, 960cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 961cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 962cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.DOUBLESTRUCK 963cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 964cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinBoldFraktur, 965cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 966cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 967cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLDFRAKTUR 968cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 969cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinBoldFraktur, 970cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 971cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 972cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLDFRAKTUR 973cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 974cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinSansSerif, 975cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 976cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 977cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIF 978cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 979cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinSansSerif, 980cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 981cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 982cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIF 983cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 984cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinSansSerifBold, 985cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 986cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 987cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFBOLD 988cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 989cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinSansSerifBold, 990cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 991cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 992cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFBOLD 993cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 994cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinSansSerifItalic, 995cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 996cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 997cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFITALIC 998cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 999cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinSansSerifItalic, 1000cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1001cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 1002cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFITALIC 1003cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1004cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallLatinMonospace, 1005cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1006cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 1007cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.MONOSPACE 1008cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1009cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalLatinMonospace, 1010cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1011cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 1012cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.MONOSPACE 1013cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1014cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.latinDoubleStruckItalic, 1015cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1016cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LATINLETTER, 1017cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.DOUBLESTRUCKITALIC 1018cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1019cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Greek alphabets. 1020cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallGreek, 1021cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1022cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1023cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 1024cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1025cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalGreek, 1026cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1027cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1028cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 1029cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1030cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallGreekBold, 1031cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1032cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1033cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLD 1034cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1035cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalGreekBold, 1036cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1037cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1038cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLD 1039cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1040cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallGreekItalic, 1041cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1042cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1043cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.ITALIC 1044cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1045cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalGreekItalic, 1046cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1047cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1048cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.ITALIC 1049cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1050cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.smallGreekSansSerifBold, 1051cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1052cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1053cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFBOLD 1054cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1055cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.capitalGreekSansSerifBold, 1056cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1057cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1058cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFBOLD 1059cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1060cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.greekDoubleStruck, 1061cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1062cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.GREEKLETTER, 1063cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.DOUBLESTRUCK 1064cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1065cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Other alphabets. 1066cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.hebrewLetters, 1067cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.IDENTIFIER, 1068cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.OTHERLETTER, 1069cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 1070cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1071cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Numbers. 1072cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsNormal, 1073cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1074cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1075cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 1076cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1077cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsFullWidth, 1078cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1079cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1080cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.NORMAL 1081cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1082cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsBold, 1083cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1084cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1085cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.BOLD 1086cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1087cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsDoubleStruck, 1088cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1089cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1090cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.DOUBLESTRUCK 1091cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1092cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsSansSerif, 1093cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1094cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1095cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIF 1096cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1097cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsSansSerifBold, 1098cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1099cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1100cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.SANSSERIFBOLD 1101cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1102cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.digitsMonospace, 1103cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1104cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER, 1105cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.MONOSPACE 1106cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1107cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.numbers, 1108cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.NUMBER, 1109cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGER 1110cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1111cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Operators. 1112cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.additions, 1113cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.OPERATOR, 1114cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.ADDITION 1115cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1116cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.multiplications, 1117cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.OPERATOR, 1118cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.MULTIPLICATION 1119cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1120cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.subtractions, 1121cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.OPERATOR, 1122cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.SUBTRACTION 1123cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1124cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.divisions, 1125cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.OPERATOR, 1126cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.DIVISION 1127cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1128cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.prefixOps, 1129cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.PREFIXOP, 1130cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.PREFIXFUNC 1131cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1132cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Relations 1133cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.equalities, 1134cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.RELATION, 1135cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.EQUALITY 1136cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1137cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.inequalities, 1138cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.RELATION, 1139cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INEQUALITY 1140cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1141cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.relations, 1142cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.RELATION, 1143cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.UNKNOWN 1144cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1145cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.arrows, 1146cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.RELATION, 1147cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.ARROW 1148cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }, 1149cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Large operators 1150cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.sumOps, 1151cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.LARGEOP, 1152cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.SUM}, 1153cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.intOps, 1154cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.LARGEOP, 1155cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.INTEGRAL}, 1156cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Functions 1157cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.limitFunctions, 1158cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FUNCTION, 1159cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.LIMFUNC}, 1160cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.prefixFunctions, 1161cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.FUNCTION, 1162cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.PREFIXFUNC}, 1163cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) {set: this.infixFunctions, 1164cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.OPERATOR, 1165cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) role: cvox.SemanticAttr.Role.MULTIPLICATION 1166cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 1167cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // TODO (sorge) Add some of the remaining elements. 1168cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ]; 1169cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1170cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)goog.addSingletonGetter(cvox.SemanticAttr); 1171cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1172cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1173cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1174cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Union type of semantic attributes. 1175cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @typedef {cvox.SemanticAttr.Type|cvox.SemanticAttr.Role} 1176cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1177cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.Attr; 1178cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1179cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1180cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1181cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Mapping for types of elements. 1182cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @enum {string} 1183cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1184cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.Type = { 1185cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Leafs. 1186cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Punctuation like comma, dot, ellipses. 1187cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PUNCTUATION: 'punctuation', 1188cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Fence symbol. 1189cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FENCE: 'fence', 1190cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // One or several digits, plus some punctuation. 1191cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NUMBER: 'number', 1192cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Single or multiple letters. 1193cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) IDENTIFIER: 'identifier', 1194cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Regular text in a math expression. 1195cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TEXT: 'text', 1196cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // e.g. +, *. 1197cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OPERATOR: 'operator', 1198cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Relation symbol, e.g. equals. 1199cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) RELATION: 'relation', 1200cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // e.g. Sum, product, integral. 1201cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LARGEOP: 'largeop', 1202cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Some named function. 1203cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FUNCTION: 'function', 1204cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1205cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Branches. 1206cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Compound Symbols. 1207cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ACCENT: 'accent', 1208cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FENCED: 'fenced', 1209cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FRACTION: 'fraction', 1210cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PUNCTUATED: 'punctuated', 1211cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1212cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Relations. 1213cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Relation sequence of a single relation. 1214cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) RELSEQ: 'relseq', 1215cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Relation sequence containing at least two different relations. 1216cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MULTIREL: 'multirel', 1217cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Operations. 1218cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) INFIXOP: 'infixop', 1219cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PREFIXOP: 'prefixop', 1220cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) POSTFIXOP: 'postfixop', 1221cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1222cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Function and Bigop Application. 1223cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) APPL: 'appl', 1224cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) INTEGRAL: 'integral', 1225cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BIGOP: 'bigop', 1226cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1227cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SQRT: 'sqrt', 1228cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ROOT: 'root', 1229cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // These are bigops or functions with limits. 1230cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LIMUPPER: 'limupper', 1231cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LIMLOWER: 'limlower', 1232cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LIMBOTH: 'limboth', 1233cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SUBSCRIPT: 'subscript', 1234cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SUPERSCRIPT: 'superscript', 1235cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UNDERSCORE: 'underscore', 1236cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OVERSCORE: 'overscore', 1237cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1238cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Tables and their elements. 1239cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TABLE: 'table', 1240cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MULTILINE: 'multiline', 1241cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MATRIX: 'matrix', 1242cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) VECTOR: 'vector', 1243cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CASES: 'cases', 1244cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ROW: 'row', 1245cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Lines are effectively single cell rows. 1246cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LINE: 'line', 1247cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CELL: 'cell', 1248cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1249cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // General. 1250cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UNKNOWN: 'unknown', 1251cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EMPTY: 'empty' 1252cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1253cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1254cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1255cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1256cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Mapping for roles of nodes. 1257cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Roles are more specific than types. 1258cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @enum {string} 1259cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1260cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.Role = { 1261cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Punctuation. 1262cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ELLIPSIS: 'ellipsis', 1263cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FULLSTOP: 'fullstop', 1264cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DASH: 'dash', 1265cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PRIME: 'prime', // Superscript. 1266cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) VBAR: 'vbar', // A vertical bar. 1267cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OPENFENCE: 'openfence', 1268cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CLOSEFENCE: 'closefence', 1269cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) APPLICATION: 'application', // Function Application. 1270cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1271cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Fences. 1272cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OPEN: 'open', 1273cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CLOSE: 'close', 1274cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TOP: 'top', 1275cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BOTTOM: 'bottom', 1276cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NEUTRAL: 'neutral', 1277cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1278cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Letters. 1279cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LATINLETTER: 'latinletter', 1280cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) GREEKLETTER: 'greekletter', 1281cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OTHERLETTER: 'otherletter', 1282cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1283cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Numbers. 1284cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) INTEGER: 'integer', 1285cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FLOAT: 'float', 1286cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OTHERNUMBER: 'othernumber', 1287cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1288cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Accents. 1289cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MULTIACCENT: 'multiaccent', 1290cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) OVERACCENT: 'overaccent', 1291cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UNDERACCENT: 'underaccent', 1292cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1293cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Fenced. 1294cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LEFTRIGHT: 'leftright', 1295cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ABOVEBELOW: 'abovebelow', 1296cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1297cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Punctuated elements. 1298cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SEQUENCE: 'sequence', 1299cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ENDPUNCT: 'endpunct', 1300cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) STARTPUNCT: 'startpunct', 1301cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1302cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Operators. 1303cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NEGATIVE: 'negative', 1304cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NEGATION: 'negation', 1305cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MULTIOP: 'multiop', 1306cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1307cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Functions. 1308cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) LIMFUNC: 'limit function', 1309cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) INFIXFUNC: 'infix function', 1310cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) PREFIXFUNC: 'prefix function', 1311cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) POSTFIXFUNC: 'postfix function', 1312cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1313cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Large operators. 1314cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SUM: 'sum', 1315cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) INTEGRAL: 'integral', 1316cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1317cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Binary operations. 1318cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ADDITION: 'addition', 1319cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MULTIPLICATION: 'multiplication', 1320cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DIVISION: 'division', 1321cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SUBTRACTION: 'subtraction', 1322cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) IMPLICIT: 'implicit', 1323cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1324cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Relations. 1325cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) EQUALITY: 'equality', 1326cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) INEQUALITY: 'inequality', 1327cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ELEMENT: 'element', 1328cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BINREL: 'binrel', 1329cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ARROW: 'arrow', 1330cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1331cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // Roles of rows, lines, cells. 1332cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // They mirror the different types for tables. 1333cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MULTILINE: 'multiline', 1334cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MATRIX: 'matrix', 1335cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) VECTOR: 'vector', 1336cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) CASES: 'cases', 1337cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) TABLE: 'table', 1338cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1339cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) // General 1340cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UNKNOWN: 'unknown' 1341cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1342cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1343cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1344cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1345cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Mapping for font annotations. (Taken from MathML2 section 3.2.2, with the 1346cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * exception of double-struck-italic.) 1347cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @enum {string} 1348cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1349cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.Font = { 1350cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BOLD: 'bold', 1351cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BOLDFRAKTUR: 'bold-fraktur', 1352cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BOLDITALIC: 'bold-italic', 1353cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) BOLDSCRIPT: 'bold-script', 1354cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DOUBLESTRUCK: 'double-struck', 1355cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) DOUBLESTRUCKITALIC: 'double-struck-italic', 1356cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) FRAKTUR: 'fraktur', 1357cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) ITALIC: 'italic', 1358cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) MONOSPACE: 'monospace', 1359cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) NORMAL: 'normal', 1360cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SCRIPT: 'script', 1361cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SANSSERIF: 'sans-serif', 1362cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SANSSERIFITALIC: 'sans-serif-italic', 1363cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SANSSERIFBOLD: 'sans-serif-bold', 1364cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) SANSSERIFBOLDITALIC: 'sans-serif-bold-italic', 1365cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) UNKNOWN: 'unknown' 1366cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1367cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1368cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1369cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1370cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Lookup the semantic type of a symbol. 1371cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {string} symbol The symbol to which we want to determine the type. 1372cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {cvox.SemanticAttr.Type} The semantic type of the symbol. 1373cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1374cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.prototype.lookupType = function(symbol) { 1375cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.Type.UNKNOWN; 1376cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1377cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1378cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1379cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1380cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Lookup the semantic role of a symbol. 1381cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {string} symbol The symbol to which we want to determine the role. 1382cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {cvox.SemanticAttr.Role} The semantic role of the symbol. 1383cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1384cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.prototype.lookupRole = function(symbol) { 1385cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.Role.UNKNOWN; 1386cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1387cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1388cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1389cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1390cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Lookup the semantic meaning of a symbol in terms of type and role. 1391cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {string} symbol The symbol to which we want to determine the meaning. 1392cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {{role: cvox.SemanticAttr.Role, 1393cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * type: cvox.SemanticAttr.Type}} The semantic meaning of the symbol. 1394cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1395cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.lookupMeaning = function(symbol) { 1396cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.getInstance().lookupMeaning_(symbol); 1397cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1398cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1399cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1400cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1401cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * String representation of the invisible times unicode character. 1402cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {string} The invisible times character. 1403cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1404cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.invisibleTimes = function() { 1405cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.getInstance().invisibleTimes_; 1406cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1407cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1408cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1409cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1410cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * String representation of the invisible comma unicode character. 1411cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {string} The invisible comma character. 1412cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1413cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.invisibleComma = function() { 1414cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.getInstance().invisibleComma_; 1415cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1416cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1417cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1418cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1419cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * String representation of the function application character. 1420cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {string} The invisible function application character. 1421cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1422cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.functionApplication = function() { 1423cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.getInstance().functionApplication_; 1424cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1425cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1426cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1427cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1428cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Decide when two fences match. Currently we match any right to left 1429cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * or bottom to top fence and neutral to neutral. 1430cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {cvox.SemanticAttr.Role} open Opening fence. 1431cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {cvox.SemanticAttr.Role} close Closing fence. 1432cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {boolean} True if the fences are matching. 1433cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1434cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.isMatchingFenceRole = function(open, close) { 1435cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return (open == cvox.SemanticAttr.Role.OPEN && 1436cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) close == cvox.SemanticAttr.Role.CLOSE) || 1437cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) (open == cvox.SemanticAttr.Role.NEUTRAL && 1438cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) close == cvox.SemanticAttr.Role.NEUTRAL) || 1439cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) (open == cvox.SemanticAttr.Role.TOP && 1440cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) close == cvox.SemanticAttr.Role.BOTTOM); 1441cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1442cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1443cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1444cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1445cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Decide when opening and closing fences match. For neutral fences they have to 1446cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * be the same. 1447cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {string} open Opening fence. 1448cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {string} close Closing fence. 1449cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {boolean} True if the fences are matching. 1450cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1451cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.isMatchingFence = function(open, close) { 1452cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return cvox.SemanticAttr.getInstance().isMatchingFence_(open, close); 1453cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1454cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1455cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1456cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1457cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Determines if a fence is an opening fence. 1458cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {cvox.SemanticAttr.Role} fence Opening fence. 1459cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {boolean} True if the fence is open or neutral. 1460cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1461cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.isOpeningFence = function(fence) { 1462cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return (fence == cvox.SemanticAttr.Role.OPEN || 1463cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) fence == cvox.SemanticAttr.Role.NEUTRAL); 1464cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1465cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1466cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1467cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1468cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Determines if a fence is a closing fence. 1469cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {cvox.SemanticAttr.Role} fence Closing fence. 1470cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {boolean} True if the fence is close or neutral. 1471cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1472cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.isClosingFence = function(fence) { 1473cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return (fence == cvox.SemanticAttr.Role.CLOSE || 1474cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) fence == cvox.SemanticAttr.Role.NEUTRAL); 1475cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1476cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1477cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1478cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)// TODO (sorge) Make this depended on position in the alphabets. 1479cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1480cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Check if a character is a small 'd' in some font. 1481cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {!string} chr The character string. 1482cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {boolean} True if the character is indeed a single small d. 1483cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1484cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.isCharacterD = function(chr) { 1485cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) var Ds = ['d', 'ⅆ', 'd', '', '', '', '', '', 1486cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) '', '', '', '', '', '']; 1487cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return Ds.indexOf(chr) != -1; 1488cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1489cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1490cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1491cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1492cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Decide when opening and closing fences match. For neutral fences they have to 1493cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * be the same. 1494cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {!string} open Opening fence. 1495cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {!string} close Closing fence. 1496cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {boolean} True if the fences are matching. 1497cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 1498cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1499cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.prototype.isMatchingFence_ = function(open, close) { 1500cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (this.neutralFences.indexOf(open) != -1) { 1501cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return open == close; 1502cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 1503cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return this.openClosePairs[open] == close || 1504cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) this.topBottomPairs[open] == close; 1505cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1506cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1507cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) 1508cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)/** 1509cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * Lookup the semantic meaning of a symbol in terms of type and role. 1510cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @param {!string} symbol The symbol to which we want to determine the meaning. 1511cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @return {{role: cvox.SemanticAttr.Role, 1512cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * type: cvox.SemanticAttr.Type, 1513cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * font: cvox.SemanticAttr.Font}} The semantic meaning of the symbol. 1514cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) * @private 1515cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) */ 1516cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)cvox.SemanticAttr.prototype.lookupMeaning_ = function(symbol) { 1517cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) for (var i = 0, set; set = this.symbolSetToSemantic_[i]; i++) { 1518cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) if (set.set.indexOf(symbol) != -1) { 1519cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return {role: set.role || cvox.SemanticAttr.Role.UNKNOWN, 1520cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: set.type || cvox.SemanticAttr.Type.UNKNOWN, 1521cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: set.font || cvox.SemanticAttr.Font.UNKNOWN 1522cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }; 1523cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 1524cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) } 1525cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) return {role: cvox.SemanticAttr.Role.UNKNOWN, 1526cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) type: cvox.SemanticAttr.Type.UNKNOWN, 1527cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) font: cvox.SemanticAttr.Font.UNKNOWN 1528cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles) }; 1529cedac228d2dd51db4b79ea1e72c7f249408ee061Torne (Richard Coles)}; 1530