Exemple #1
0
        public string this[ILanguageSymbol symbol]
        {
            get
            {
                var    symbolAccessName = symbol.SymbolAccessName;
                string mathName;

                return
                    (_namesDictionary.TryGetValue(symbolAccessName, out mathName)
                    ? mathName : String.Empty);
            }
            set
            {
                var symbolAccessName = symbol.SymbolAccessName;
                var mathName         = value.Trim();

                if (String.IsNullOrEmpty(mathName))
                {
                    _namesDictionary.Remove(symbolAccessName);
                    return;
                }

                if (_namesDictionary.ContainsKey(symbolAccessName))
                {
                    _namesDictionary[symbolAccessName] = mathName;
                }
                else
                {
                    _namesDictionary.Add(symbolAccessName, mathName);
                }
            }
        }
Exemple #2
0
        internal static AstSymbol ToAstSymbol(this ILanguageSymbol symbol)
        {
            var s1 = symbol as GMacNamespace;

            if (ReferenceEquals(s1, null) == false)
            {
                return(new AstNamespace(s1));
            }

            var s2 = symbol as GMacFrame;

            if (ReferenceEquals(s2, null) == false)
            {
                return(new AstFrame(s2));
            }

            var s3 = symbol as GMacFrameMultivector;

            if (ReferenceEquals(s3, null) == false)
            {
                return(new AstFrameMultivector(s3));
            }

            var s4 = symbol as GMacFrameBasisVector;

            if (ReferenceEquals(s4, null) == false)
            {
                return(new AstFrameBasisVector(s4));
            }

            var s5 = symbol as GMacFrameSubspace;

            if (ReferenceEquals(s5, null) == false)
            {
                return(new AstFrameSubspace(s5));
            }

            var s6 = symbol as GMacConstant;

            if (ReferenceEquals(s6, null) == false)
            {
                return(new AstConstant(s6));
            }

            var s7 = symbol as GMacStructure;

            if (ReferenceEquals(s7, null) == false)
            {
                return(new AstStructure(s7));
            }

            var s8 = symbol as SymbolStructureDataMember;

            if (ReferenceEquals(s8, null) == false)
            {
                return(new AstStructureDataMember(s8));
            }

            var s9 = symbol as GMacMacro;

            if (ReferenceEquals(s9, null) == false)
            {
                return(new AstMacro(s9));
            }

            var s10 = symbol as SymbolProcedureParameter;

            if (ReferenceEquals(s10, null) == false)
            {
                return(new AstMacroParameter(s10));
            }

            var s11 = symbol as SymbolLocalVariable;

            if (ReferenceEquals(s11, null) == false)
            {
                return(new AstLocalVariable(s11));
            }

            var s12 = symbol as GMacMultivectorTransform;

            if (ReferenceEquals(s12, null) == false)
            {
                return(new AstTransform(s12));
            }

            return(null);
        }
Exemple #3
0
 /// <summary>
 /// Get the qualified access name of this symbol relative to the access name of the given symbol
 /// </summary>
 /// <param name="symbol"></param>
 /// <returns></returns>
 internal string RelativeAccessName(ILanguageSymbol symbol)
 {
     return(RelativeAccessName(symbol.SymbolAccessName));
 }