public static List<InstructionLine> FromDataString(string data)
{
var result = new List<InstructionLine>();
var pairs = data.ToNameValuePairs();
if (data[0] == '{')
{
result = new List<InstructionLine>();
result.Add(InstructionLine.FromDataString(data.RemoveBraces()));
}
//else
//{
// foreach (var pair in pairs)
// {
// switch (pair.Name)
// {
// case "src_and_asm_line":
// var mixedPairs = pair.Value.RemoveBraces ().ToNameValues ();
// var sourceLine = new SourceLine ();
// var instructionLines = new List<InstructionLine> ();
// foreach (var internalPair in mixedPairs)
// {
// switch (internalPair.Name)
// {
// case "line":
// sourceLine.Line = Convert.ToInt32 (internalPair.Value);
// break;
// case "file":
// sourceLine.File = internalPair.Value;
// break;
// case "fullname":
// sourceLine.FullFileName = internalPair.Value;
// break;
// case "line_asm_insn":
// var instructions = internalPair.Value.ToArray ();
// foreach (var instruction in instructions)
// {
// instructionLines.Add (InstructionLine.FromDataString (instruction.RemoveBraces ()));
// }
// break;
// default:
// throw new NotImplementedException ();
// }
// }
// result.Add (sourceLine);
// result.AddRange (instructionLines);
// break;
// default:
// throw new NotImplementedException ();
// }
//}
//}
return result;
}
}