public static DataValue GetDataValueFromNode(ITerminalNode node, [NotNull] Type type) { var value = Convert.ChangeType(node.GetTextValue(), type); return(new DataValue { DataType = type, Value = value }); }
public override IValue VisitValue([NotNull] JLMLParser.ValueContext context) { ITerminalNode @string = context.STRING(); ITerminalNode identif = context.IDENTIFIER(); ITerminalNode propert = context.PROPERTY_NAME(); ITerminalNode integer = context.NUMBER(); ITerminalNode literal = context.LITERAL(); if (@string != null) { return(GetDataValueFromNode(@string, typeof(string))); } if (integer != null) { return(GetDataValueFromNode(integer, typeof(int))); } if (literal != null) { return(GetDataValueFromNode(literal, typeof(bool))); } if (identif != null) { return new VariableValue { Value = identif.GetTextValue() } } ; if (propert != null) { return new VariableValue { Value = propert.GetTextValue() } } ; return(context.Accept(this)); }