Exemplo n.º 1
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));
        }
Exemplo n.º 2
0
 /// <nodoc/>
 public static ObjectLiteral Create(IReadOnlyList <Binding> bindings, LineInfo location, AbsolutePath path, string returnType)
 {
     return(new LazyEvalObjectLiteral(ObjectLiteral.Create(bindings, location, path), returnType));
 }