Mam pęczku danych w postaci tabeli Lua i chciałbym parsować te dane do użytecznej struktury w C#.Jak najlepiej przeanalizować dowolny stały stół Lua bez ładowania go w maszynie wirtualnej Lua?
Problem z tabelami Lua polega na tym, że istnieją opcjonalne pola, tabele są bardzo dynamiczne i nie są tylko słownikiem z jednym typem dla klucza i jednym typem dla wartości. Możliwe jest posiadanie jednej tabeli Lua z kluczami ciągowymi i całkowitymi oraz wartościami typu integer, string i nawet z tabelą.
Niestety, dane, które analizuję, wykorzystują dynamiczną naturę języka i nie są tak skonstruowane w prosty sposób. Wymaga to dynamicznej reprezentacji danych, używając na przykład Dictionary<object, dynamic>
.
Format danych to np. (od http://ideone.com/9nzXvt)
local mainNode =
{
[0] =
{
Name = "First element",
Comments = "I have comments!",
Data = { {123, 456}; foo = { "bar" } }
},
[1337] =
{
Name = "Another element",
Data = { {0}; foo = nil }
}
}
Czy są tam jakieś biblioteki? Czy istnieje sposób, aby to osiągnąć bez analizowania danych znak po znaku?
możliwe duplikat [Najprostszym sposobem analizowania datastructure Lua C#/NET] (http://stackoverflow.com/questions/881445/easiest-way-to-parse-a-lua -datastructure-in-c-sharp-net) –