private MsgTypedValue ConstantToTypedValue(ConstantValue c) { var tv = new MsgTypedValue(); // TODO - c.TypeName? switch (c.Type) { case IRConstantType.Integer: tv.TypeId = (UInt32)Value.Type.Integer; tv.Intval = c.IntegerValue; break; case IRConstantType.Float: tv.TypeId = (UInt32)Value.Type.Float; tv.Floatval = c.FloatValue; break; case IRConstantType.String: tv.TypeId = (UInt32)Value.Type.String; tv.Stringval = c.StringValue; break; case IRConstantType.Name: tv.TypeId = (UInt32)Value.Type.GuidString; tv.Stringval = c.StringValue; break; default: throw new ArgumentException("Constant has unknown type"); } return(tv); }
public string ValueToString(MsgTypedValue value) { string valueStr; switch ((Value.Type)value.TypeId) { case Value.Type.None: valueStr = "(None)"; break; case Value.Type.Integer: case Value.Type.Integer64: valueStr = value.Intval.ToString(); break; case Value.Type.Float: valueStr = value.Floatval.ToString(); break; case Value.Type.String: case Value.Type.GuidString: default: valueStr = value.Stringval; break; } return(valueStr); }
private MsgTypedValue VariableToTypedValue(LocalVar lvar, CoalescedFrame frame) { // TODO - lvar.Type? if (lvar.Name == "_") { var tv = new MsgTypedValue(); tv.TypeId = (UInt32)Value.Type.None; return(tv); } else { var frameVar = frame.Variables.FirstOrDefault(v => v.Name == lvar.Name); if (frameVar == null) { throw new RequestFailedException($"Variable does not exist: \"{lvar.Name}\""); } return(frameVar.TypedValue); } }