public override void AfterVisit(AttributeNode attributeNode) { if (_propertyValueEmitter == null) _propertyValueEmitter = EmitterNode.Lambda<VPropertyValue>((d, r) => null); var valueEmitter = _propertyValueEmitter; _properties.Peek().Add(EmitterNode.AsList(EmitterNode.Lambda((d, r) => new VProperty(attributeNode.Name, valueEmitter.Execute(d, r))))); _propertyValueEmitter = null; }
public override void Visit(ConstantAttributeContent attributeContent) { _propertyValueEmitter = EmitterNode.Lambda((d, r) => new StringVPropertyValue(attributeContent.Text)); }
public override void Visit(AttributeContentStatement constantAttributeContent) { _expressionVisitor.EnterScope(constantAttributeContent.Expression); var emitter = _expressionVisitor.LeavePropertyValueScope(constantAttributeContent.Expression); _propertyValueEmitter = EmitterNode.Lambda((d, r) => GetPropertyValue(emitter, d, r)); }
public override void AfterVisit(Document document) { var emitter = EmitterNode.Many(LeaveScope()); DocumentFunc = EmitterNode.Lambda((d, r) => new VNode(emitter.Execute(d, r))); }