public override Node VisitQuestion([NotNull] QuestionContext context) { var questionNode = new QuestionNode(context.Start, context.LABEL().ToString()); if (context.style() != null) { questionNode.AddChild(Visit(context.style())); } return(questionNode); }
public override Node VisitQuestion(QuestionContext context) { var expressionNode = Visit(context.expression()); var question = new QuestionNode(context.Start, context.STRING().GetText().Replace("\"", string.Empty), context.LABEL().GetText(), expressionNode != null, QLTypeConverter.FromStringTypeToQLType(context.type().GetText())); question.AddChild(expressionNode); return(question); }
public override Node Visit(QuestionNode question) { var questionNode = new QuestionNode(question.Token, question.Description, question.Label, question.IsEvaluated, question.Type); foreach (var expression in question.ChildNodes) { var evaluatedNode = expression.Accept(this) as LiteralNode; _memory.AssignValue(question.Label, _valueFactory.CreateValueFromString(evaluatedNode.Value, question.Type)); questionNode.AddChild(evaluatedNode); } if (!questionNode.ChildNodes.Any()) { IValue memoryValue; if (!_memory.TryRetrieveValue(question.Label, out memoryValue)) { memoryValue = _valueFactory.CreateDefaultValue(question.Type); } questionNode.ChildNodes.Add(new LiteralNode(question.Token, memoryValue.ToString(), question.Type)); } return(questionNode); }