void Condition(SingleNodeTree parent) { SelectorTypes selectorType; ModifierTypes modifierType; if (FollowedByColon()) { Selector(out selectorType, out modifierType); SelectorExpression selector = new SelectorExpression(selectorType, modifierType, t.val); if (la.kind == 6) { ComplexCondition(parent, selector); } else if (StartOf(3)) { parent.SetChild(selector); Literal(selector); } else { SynErr(45); } } else if (StartOf(3)) { SelectorExpression nestedSelector = new SelectorExpression(SelectorTypes.Unspecified, ModifierTypes.Equals, t.val); parent.SetChild(nestedSelector); Literal(nestedSelector); } else { SynErr(46); } }
protected BinaryCombinator(SelectorExpression left, SelectorExpression right) { Left = left; Right = right; if (left == null) throw new ArgumentNullException(nameof(left)); if (right == null) throw new ArgumentNullException(nameof(right)); }
public override string ToString() { string selector = SelectorExpression != null?SelectorExpression.ToString() : string.Empty; string value = ValueExpression != null?ValueExpression.ToString() : string.Empty; return(selector + " " + value); }
public InterpolationConverter(AstConverter astConverter, AstConversionContext conversionContext) { Contract.Requires(astConverter != null); Contract.Requires(conversionContext != null); m_converter = astConverter; m_context = conversionContext; m_literalConverter = new LiteralConverter(conversionContext); m_pathAtomInterpolateSelectorExpression = CreatePathAtomInterpolateSelectorExpression(); m_stringInterpolationSelectorExpression = CreateStringInterpolateSelectorExpression(); }
public void ReportFailResolveSelectorDueToUndefined(ModuleLiteral env, SelectorExpression expression) { Contract.Requires(env != null); Contract.Requires(expression != null); var location = expression.Location.AsUniversalLocation(env, Context); Logger.ReportFailResolveSelectorDueToUndefined( LoggingContext, location.AsLoggingLocation(), expression.Selector.ToDisplayString(Context), expression.ThisExpression.ToDisplayString(Context), Context.GetStackTraceAsErrorMessage(location)); }
private SelectorExpression MapExpression(IParser reader, Func <IParser, Type, object> nestedObjectDeserializer) { SelectorExpression result = null; var properties = new SelectorExpression.PropertyBag(); MapProperty(properties, reader, nestedObjectDeserializer, out string key); if (key != null && TryCondition(key)) { result = MapCondition(key, properties, reader, nestedObjectDeserializer); } else if (TryOperator(key) && reader.Accept(out MappingStart mapping)) { result = MapOperator(key, reader, nestedObjectDeserializer); } else if (TryOperator(key) && reader.Accept(out SequenceStart sequence)) { result = MapOperator(key, reader, nestedObjectDeserializer); } return(result); }
void ComplexCondition(SingleNodeTree parent, SelectorExpression selector) { ConditionGroup group = new ConditionGroup(); parent.SetChild(group); ExpressionTreeBase addTo = group; SingleNodeTree condition = null; ConditionalExpression lastOperation = null; Expect(6); while (StartOf(2)) { lastOperation = lastOperation ?? new AndCondition(); MultiAdd(addTo, lastOperation); addTo = lastOperation; selector = new SelectorExpression(selector.Field, ModifierTypes.Equals, selector.Path); if (la.kind == 5) { Get(); NotCondition not = new NotCondition(); lastOperation.SetChild(not); lastOperation = not; } if (la.kind == 6) { ComplexCondition(lastOperation, selector); } else if (StartOf(3)) { SelectorExpression nestedSelector = new SelectorExpression(selector.Field, ModifierTypes.Equals, selector.Path); MultiAdd(lastOperation, nestedSelector); Literal(nestedSelector); } else { SynErr(49); } if (la.kind == 9 || la.kind == 10) { Operation(out lastOperation); } else { lastOperation = null; } } Expect(7); }
public void TestSelectorExpression() { SelectorExpression node = new SelectorExpression(GetExpression1(), GetSymbolAtom(), DefaultLineInfo); CheckSerializationRoundTrip(node); }
public ParentSelector(SelectorExpression inner) { Inner = inner; }
public SiblingCombinator(SelectorExpression left, SelectorExpression right) : base(left, right) { }
void ComplexCondition(SingleNodeTree parent, SelectorExpression selector) { ConditionGroup group = new ConditionGroup(); parent.SetChild(group); ExpressionTreeBase addTo = group; SingleNodeTree condition = null; ConditionalExpression lastOperation = null; Expect(6); while (StartOf(2)) { lastOperation = lastOperation ?? new AndCondition(); MultiAdd(addTo, lastOperation); addTo = lastOperation; selector = new SelectorExpression(selector.Field, ModifierTypes.Equals, selector.Path); if (la.kind == 5) { Get(); NotCondition not = new NotCondition(); lastOperation.SetChild(not); lastOperation = not; } if (la.kind == 6) { ComplexCondition(lastOperation, selector); } else if (StartOf(3)) { SelectorExpression nestedSelector = new SelectorExpression(selector.Field, ModifierTypes.Equals, selector.Path); MultiAdd(lastOperation, nestedSelector); Literal(nestedSelector); } else SynErr(49); if (la.kind == 9 || la.kind == 10) { Operation(out lastOperation); } else { lastOperation = null; } } Expect(7); }
void Condition(SingleNodeTree parent) { SelectorTypes selectorType; ModifierTypes modifierType; if (FollowedByColon()) { Selector(out selectorType, out modifierType); SelectorExpression selector = new SelectorExpression(selectorType, modifierType, t.val); if (la.kind == 6) { ComplexCondition(parent, selector); } else if (StartOf(3)) { parent.SetChild(selector); Literal(selector); } else SynErr(45); } else if (StartOf(3)) { SelectorExpression nestedSelector = new SelectorExpression(SelectorTypes.Unspecified, ModifierTypes.Equals, t.val); parent.SetChild(nestedSelector); Literal(nestedSelector); } else SynErr(46); }
public ChildCombinator(SelectorExpression parent, SelectorExpression child) : base(parent, child) { }