private bool TestFloatValue(QLPart part, Node secondNode, ParserParts parserParts) { var floatValue = (secondNode as CFloatNode).FloatValue; //int schema to float query if (part.QLNumber != null) { var intPropValue = part.QLNumber.Value; if (Compare(intPropValue, floatValue, parserParts)) { return(true); } } //float schema to float query if (part.QLFloat != null) { var floatPropValue = part.QLFloat.Value; if (Compare(floatPropValue, floatValue, parserParts)) { return(true); } } return(false); }
public void MaximumRelAtt(RelationSymbol parameterSym1, string exAttribute, RelationSymbol returnSym) { Console.WriteLine("Maximum'ing..."); var index = parameterSym1.Index.Value; QLPart partForTypeExtraction = null; //first present attribute provides type info var tuples = parameterSym1.Tuples.ToArray(); foreach (var tuple in tuples) { var part = tuple[index].GetPropertyValue(exAttribute); if (part != null) { partForTypeExtraction = part; break; } } if (partForTypeExtraction == null) { return; } IEnumerable <QLEntity[]> tuplesOut = null; if (partForTypeExtraction.QLNumber != null) { var max = tuples.Max(t => t[index].GetPropertyValue(exAttribute).QLNumber.Value); tuplesOut = tuples.Where(t => t[index].GetPropertyValue(exAttribute).QLNumber.Value == max); } returnSym.SetTuples(tuplesOut); }
private bool TestStringValue(QLPart part, Node secondNode) { var stringValue = (secondNode as CStringNode).Value; if (part.QLString != null) { var strPropValue = part.QLString.QLStr; if (string.Compare(strPropValue, stringValue, StringComparison.OrdinalIgnoreCase) == 0) { return(true); } } //enum case else if (part.QLEnum != null) { var enumPropValue = part.QLEnum.QLStr; if (string.Compare(enumPropValue, stringValue, StringComparison.OrdinalIgnoreCase) == 0) { return(true); } } return(false); }
private IEnumerable <QLEntity> EntitesFromRefs(QLPart referenceValue) { if (referenceValue == null || (referenceValue.QLEntityId == null && referenceValue.QLList == null)) { return(new List <QLEntity>()); } if (referenceValue.QLEntityId != null) { var referencedEntity = interpreterRepository.GlobalEntityDictionary[referenceValue.QLEntityId.Id]; return(new List <QLEntity>() { referencedEntity }); } if (referenceValue.QLList != null && referenceValue.QLList.HasRef) { return(referenceValue.QLList.List.Where(r => r.QLEntityId != null).Select(r => interpreterRepository.GlobalEntityDictionary[r.QLEntityId.Id]).ToList()); } throw new ArgumentException(); }
void part(out QLPart QLPart) { QLPart = new QLPart(); QLClass QLClass; QLList QLList; string QLstring; string enumstring; switch (la.kind) { case 12: { myenum(out enumstring); QLPart.QLEnum = new QLEnum(enumstring); break; } case 1: { mystring(out QLstring); QLPart.QLString = new QLString(QLstring); break; } case 13: { Get(); QLPart.IsNull = true; break; } case 2: { Get(); QLPart.QLEntityId = new QLEntityId(t.val); break; } case 4: { list(out QLList); QLPart.QLList = QLList; break; } case 6: { Get(); QLPart.SetFloat(t.val); break; } case 7: { Get(); QLPart.SetNumber(t.val); break; } case 9: { Get(); QLPart.IsNull = true; break; } case 8: { myclass(out QLClass); QLPart.QLClass = QLClass; break; } case 14: { Get(); QLPart.IsEmptyList = true; break; } default: SynErr(16); break; } }