table statement handling

This commit is contained in:
Robin Appelman 2023-12-15 18:07:47 +01:00
commit 28469fde0f
7 changed files with 379 additions and 24 deletions

View file

@ -0,0 +1,179 @@
"UserConfigData"
{
"Steam"
{
"cached"
{
"OverlaySplash.res"
{
}
}
}
"FriendsMainDialog"
{
"xpos" "1028"
"ypos" "280"
"wide" "252"
"tall" "440"
"FriendPanelSelf"
{
}
"FriendsDialogSheet"
{
"FriendsFriendsPage"
{
"BuddyList"
{
"0_collapsed" "0"
"1_collapsed" "0"
"2_collapsed" "0"
"3_collapsed" "0"
"4_collapsed" "0"
"5_collapsed" "0"
"allfriends_collapsed" "0"
}
}
"FriendsClansPage"
{
"BuddyList"
{
"0_collapsed" "0"
"1_collapsed" "0"
"2_collapsed" "0"
"3_collapsed" "0"
}
}
}
"FriendsState"
{
}
}
"Servers"
{
"DialogServerBrowser.res"
{
"xpos" "0"
"ypos" "0"
"wide" "1280"
"tall" "720"
"GameTabs"
{
"InternetGames"
{
"gamelist"
{
"#ServerBrowser_Password_hidden" "0"
"#ServerBrowser_Bots_hidden" "1"
"#ServerBrowser_Secure_hidden" "0"
"#ServerBrowser_Servers_hidden" "0"
"#ServerBrowser_IPAddress_hidden" "1"
"#ServerBrowser_Game_hidden" "0"
"#ServerBrowser_Players_hidden" "0"
"#ServerBrowser_Map_hidden" "0"
"#ServerBrowser_Latency_hidden" "0"
"sort_column" "#ServerBrowser_Latency"
"sort_column_secondary" ""
"sort_column_asc" "1"
"sort_column_secondary_asc" "1"
}
}
"FavoriteGames"
{
"gamelist"
{
"#ServerBrowser_Password_hidden" "0"
"#ServerBrowser_Bots_hidden" "1"
"#ServerBrowser_Secure_hidden" "0"
"#ServerBrowser_Servers_hidden" "0"
"#ServerBrowser_IPAddress_hidden" "1"
"#ServerBrowser_Game_hidden" "0"
"#ServerBrowser_Players_hidden" "0"
"#ServerBrowser_Map_hidden" "0"
"#ServerBrowser_Latency_hidden" "0"
"sort_column" "#ServerBrowser_Latency"
"sort_column_secondary" ""
"sort_column_asc" "1"
"sort_column_secondary_asc" "1"
}
}
"HistoryGames"
{
"gamelist"
{
"#ServerBrowser_Password_hidden" "0"
"#ServerBrowser_Bots_hidden" "1"
"#ServerBrowser_Secure_hidden" "0"
"#ServerBrowser_Servers_hidden" "0"
"#ServerBrowser_IPAddress_hidden" "1"
"#ServerBrowser_Game_hidden" "0"
"#ServerBrowser_Players_hidden" "0"
"#ServerBrowser_Map_hidden" "0"
"#ServerBrowser_Latency_hidden" "0"
"#ServerBrowser_LastPlayed_hidden" "0"
"sort_column" "#ServerBrowser_LastPlayed"
"sort_column_secondary" "#ServerBrowser_Latency"
"sort_column_asc" "1"
"sort_column_secondary_asc" "1"
}
}
"SpectateGames"
{
"gamelist"
{
"#ServerBrowser_Password_hidden" "0"
"#ServerBrowser_Bots_hidden" "1"
"#ServerBrowser_Secure_hidden" "0"
"#ServerBrowser_Servers_hidden" "0"
"#ServerBrowser_IPAddress_hidden" "1"
"#ServerBrowser_Game_hidden" "0"
"#ServerBrowser_Players_hidden" "0"
"#ServerBrowser_Map_hidden" "0"
"#ServerBrowser_Latency_hidden" "0"
"sort_column" "#ServerBrowser_Latency"
"sort_column_secondary" ""
"sort_column_asc" "1"
"sort_column_secondary_asc" "1"
}
}
"LanGames"
{
"gamelist"
{
"#ServerBrowser_Password_hidden" "0"
"#ServerBrowser_Bots_hidden" "1"
"#ServerBrowser_Secure_hidden" "0"
"#ServerBrowser_Servers_hidden" "0"
"#ServerBrowser_IPAddress_hidden" "1"
"#ServerBrowser_Game_hidden" "0"
"#ServerBrowser_Players_hidden" "0"
"#ServerBrowser_Map_hidden" "0"
"#ServerBrowser_Latency_hidden" "0"
"sort_column" "#ServerBrowser_Latency"
"sort_column_secondary" ""
"sort_column_asc" "1"
"sort_column_secondary_asc" "1"
}
}
"FriendsGames"
{
"gamelist"
{
"#ServerBrowser_Password_hidden" "0"
"#ServerBrowser_Bots_hidden" "1"
"#ServerBrowser_Secure_hidden" "0"
"#ServerBrowser_Servers_hidden" "0"
"#ServerBrowser_IPAddress_hidden" "1"
"#ServerBrowser_Game_hidden" "0"
"#ServerBrowser_Players_hidden" "0"
"#ServerBrowser_Map_hidden" "0"
"#ServerBrowser_Latency_hidden" "0"
"sort_column" "#ServerBrowser_Latency"
"sort_column_secondary" ""
"sort_column_asc" "1"
"sort_column_secondary_asc" "1"
}
}
}
}
}
}

View file

@ -5,6 +5,7 @@ use vdf_reader::Reader;
#[test_case("tests/data/concrete.vmt")]
#[test_case("tests/data/messy.vdf")]
#[test_case("tests/data/DialogConfigOverlay_1280x720.vdf")]
fn test_parse(path: &str) {
let raw = read_to_string(path).unwrap();
let mut reader = Reader::from(raw.as_str());

View file

@ -0,0 +1,155 @@
---
source: tests/parse.rs
expression: parsed
---
Table({
"UserConfigData": Table(Table({
"FriendsMainDialog": Table(Table({
"FriendPanelSelf": Table(Table({})),
"FriendsDialogSheet": Table(Table({
"FriendsClansPage": Table(Table({
"BuddyList": Table(Table({
"0_collapsed": Value(Value("0")),
"1_collapsed": Value(Value("0")),
"2_collapsed": Value(Value("0")),
"3_collapsed": Value(Value("0")),
})),
})),
"FriendsFriendsPage": Table(Table({
"BuddyList": Table(Table({
"0_collapsed": Value(Value("0")),
"1_collapsed": Value(Value("0")),
"2_collapsed": Value(Value("0")),
"3_collapsed": Value(Value("0")),
"4_collapsed": Value(Value("0")),
"5_collapsed": Value(Value("0")),
"allfriends_collapsed": Value(Value("0")),
})),
})),
})),
"FriendsState": Table(Table({})),
"tall": Value(Value("440")),
"wide": Value(Value("252")),
"xpos": Value(Value("1028")),
"ypos": Value(Value("280")),
})),
"Servers": Table(Table({
"DialogServerBrowser.res": Table(Table({
"GameTabs": Table(Table({
"FavoriteGames": Table(Table({
"gamelist": Table(Table({
"#ServerBrowser_Bots_hidden": Statement(Statement("1")),
"#ServerBrowser_Game_hidden": Statement(Statement("0")),
"#ServerBrowser_IPAddress_hidden": Statement(Statement("1")),
"#ServerBrowser_Latency_hidden": Statement(Statement("0")),
"#ServerBrowser_Map_hidden": Statement(Statement("0")),
"#ServerBrowser_Password_hidden": Statement(Statement("0")),
"#ServerBrowser_Players_hidden": Statement(Statement("0")),
"#ServerBrowser_Secure_hidden": Statement(Statement("0")),
"#ServerBrowser_Servers_hidden": Statement(Statement("0")),
"sort_column": Value(Value("#ServerBrowser_Latency")),
"sort_column_asc": Value(Value("1")),
"sort_column_secondary": Value(Value("")),
"sort_column_secondary_asc": Value(Value("1")),
})),
})),
"FriendsGames": Table(Table({
"gamelist": Table(Table({
"#ServerBrowser_Bots_hidden": Statement(Statement("1")),
"#ServerBrowser_Game_hidden": Statement(Statement("0")),
"#ServerBrowser_IPAddress_hidden": Statement(Statement("1")),
"#ServerBrowser_Latency_hidden": Statement(Statement("0")),
"#ServerBrowser_Map_hidden": Statement(Statement("0")),
"#ServerBrowser_Password_hidden": Statement(Statement("0")),
"#ServerBrowser_Players_hidden": Statement(Statement("0")),
"#ServerBrowser_Secure_hidden": Statement(Statement("0")),
"#ServerBrowser_Servers_hidden": Statement(Statement("0")),
"sort_column": Value(Value("#ServerBrowser_Latency")),
"sort_column_asc": Value(Value("1")),
"sort_column_secondary": Value(Value("")),
"sort_column_secondary_asc": Value(Value("1")),
})),
})),
"HistoryGames": Table(Table({
"gamelist": Table(Table({
"#ServerBrowser_Bots_hidden": Statement(Statement("1")),
"#ServerBrowser_Game_hidden": Statement(Statement("0")),
"#ServerBrowser_IPAddress_hidden": Statement(Statement("1")),
"#ServerBrowser_LastPlayed_hidden": Statement(Statement("0")),
"#ServerBrowser_Latency_hidden": Statement(Statement("0")),
"#ServerBrowser_Map_hidden": Statement(Statement("0")),
"#ServerBrowser_Password_hidden": Statement(Statement("0")),
"#ServerBrowser_Players_hidden": Statement(Statement("0")),
"#ServerBrowser_Secure_hidden": Statement(Statement("0")),
"#ServerBrowser_Servers_hidden": Statement(Statement("0")),
"sort_column": Value(Value("#ServerBrowser_LastPlayed")),
"sort_column_asc": Value(Value("1")),
"sort_column_secondary": Value(Value("#ServerBrowser_Latency")),
"sort_column_secondary_asc": Value(Value("1")),
})),
})),
"InternetGames": Table(Table({
"gamelist": Table(Table({
"#ServerBrowser_Bots_hidden": Statement(Statement("1")),
"#ServerBrowser_Game_hidden": Statement(Statement("0")),
"#ServerBrowser_IPAddress_hidden": Statement(Statement("1")),
"#ServerBrowser_Latency_hidden": Statement(Statement("0")),
"#ServerBrowser_Map_hidden": Statement(Statement("0")),
"#ServerBrowser_Password_hidden": Statement(Statement("0")),
"#ServerBrowser_Players_hidden": Statement(Statement("0")),
"#ServerBrowser_Secure_hidden": Statement(Statement("0")),
"#ServerBrowser_Servers_hidden": Statement(Statement("0")),
"sort_column": Value(Value("#ServerBrowser_Latency")),
"sort_column_asc": Value(Value("1")),
"sort_column_secondary": Value(Value("")),
"sort_column_secondary_asc": Value(Value("1")),
})),
})),
"LanGames": Table(Table({
"gamelist": Table(Table({
"#ServerBrowser_Bots_hidden": Statement(Statement("1")),
"#ServerBrowser_Game_hidden": Statement(Statement("0")),
"#ServerBrowser_IPAddress_hidden": Statement(Statement("1")),
"#ServerBrowser_Latency_hidden": Statement(Statement("0")),
"#ServerBrowser_Map_hidden": Statement(Statement("0")),
"#ServerBrowser_Password_hidden": Statement(Statement("0")),
"#ServerBrowser_Players_hidden": Statement(Statement("0")),
"#ServerBrowser_Secure_hidden": Statement(Statement("0")),
"#ServerBrowser_Servers_hidden": Statement(Statement("0")),
"sort_column": Value(Value("#ServerBrowser_Latency")),
"sort_column_asc": Value(Value("1")),
"sort_column_secondary": Value(Value("")),
"sort_column_secondary_asc": Value(Value("1")),
})),
})),
"SpectateGames": Table(Table({
"gamelist": Table(Table({
"#ServerBrowser_Bots_hidden": Statement(Statement("1")),
"#ServerBrowser_Game_hidden": Statement(Statement("0")),
"#ServerBrowser_IPAddress_hidden": Statement(Statement("1")),
"#ServerBrowser_Latency_hidden": Statement(Statement("0")),
"#ServerBrowser_Map_hidden": Statement(Statement("0")),
"#ServerBrowser_Password_hidden": Statement(Statement("0")),
"#ServerBrowser_Players_hidden": Statement(Statement("0")),
"#ServerBrowser_Secure_hidden": Statement(Statement("0")),
"#ServerBrowser_Servers_hidden": Statement(Statement("0")),
"sort_column": Value(Value("#ServerBrowser_Latency")),
"sort_column_asc": Value(Value("1")),
"sort_column_secondary": Value(Value("")),
"sort_column_secondary_asc": Value(Value("1")),
})),
})),
})),
"tall": Value(Value("720")),
"wide": Value(Value("1280")),
"xpos": Value(Value("0")),
"ypos": Value(Value("0")),
})),
})),
"Steam": Table(Table({
"cached": Table(Table({
"OverlaySplash.res": Table(Table({})),
})),
})),
})),
})