예제 #1
0
        /// <summary>
        /// Writes a FullSymbol using its underlying string representation
        /// </summary>
        public override void Write(FullSymbol value)
        {
            Start <FullSymbol>();
            Write(value.IsValid);
            if (value.IsValid)
            {
                Write(value.ToString(m_symbolTable));
            }

            End();
        }
예제 #2
0
            /// <summary>
            /// Constructs a debug view from a normal FullSymbol.
            /// </summary>
            /// <remarks>
            /// This constructor is required by the debugger.
            /// Consequently, Invalid AbsoluteIds are allowed.
            /// </remarks>
            public AbsoluteIdDebuggerView(FullSymbol fullSymbol)
            {
                Id = fullSymbol.Value;

                if (fullSymbol == Invalid)
                {
                    OwningSymbolTable = null;
                    Identifier        = null;
                }
                else
                {
                    OwningSymbolTable = HierarchicalNameTable.DebugTryGetTableForId(fullSymbol.Value) as SymbolTable;
                    if (OwningSymbolTable != null)
                    {
                        Identifier = fullSymbol.ToString(OwningSymbolTable);
                    }
                }
            }