Exemplo n.º 1
0
        /// <summary>
        /// Writes a QualifierId using its underlying string representation
        /// </summary>
        public override void Write(QualifierId qualifierId)
        {
            Start <QualifierId>();
            Write(qualifierId.IsValid);

            if (qualifierId.IsValid)
            {
                var qualifier = m_qualifierTable.GetQualifier(qualifierId);

                // the qualifier is stored as <key, value>[]
                var keyValues = new Tuple <string, string> [qualifier.Keys.Count];
                for (var i = 0; i < keyValues.Length; i++)
                {
                    keyValues[i] = new Tuple <string, string>(qualifier.Keys[i].ToString(m_stringTable), qualifier.Values[i].ToString(m_stringTable));
                }

                Write(
                    ReadOnlyArray <Tuple <string, string> > .FromWithoutCopy(keyValues),
                    (writer, value) =>
                {
                    writer.Write(value.Item1);
                    writer.Write(value.Item2);
                });
            }

            End();
        }
Exemplo n.º 2
0
        private string ToString(QualifierId qualifierId, QualifierTable qualifierTable, FrontEndContext context)
        {
            Contract.Requires(context != null);
            Contract.Requires(qualifierTable != null);

            Qualifier qualifier = qualifierTable.GetQualifier(qualifierId);

            return(qualifier.ToDisplayString(context.StringTable));
        }
Exemplo n.º 3
0
        /// <summary>
        /// Creates a qualifier value given a qualifier id.
        /// </summary>
        public static QualifierValue Create(QualifierId qualifierId, QualifierTable qualifierTable, StringTable stringTable)
        {
            Contract.Requires(qualifierId.IsValid);
            Contract.Requires(qualifierTable != null);
            Contract.Requires(qualifierTable.IsValidQualifierId(qualifierId));

            if (qualifierTable.EmptyQualifierId == qualifierId)
            {
                return(CreateEmpty(qualifierTable));
            }

            Qualifier qualifier = qualifierTable.GetQualifier(qualifierId);
            var       bindings  = new List <Binding>(qualifier.Keys.Count);

            for (int i = 0; i < qualifier.Keys.Count; ++i)
            {
                bindings.Add(new Binding(qualifier.Keys[i], qualifier.Values[i].ToString(stringTable), location: default(LineInfo)));
            }

            return(new QualifierValue(ObjectLiteral.Create(bindings, default(LineInfo), default(AbsolutePath)), qualifierId));
        }