Dobrý den,
dělám matematický parser a po hrubé analýze mám vzorec rozčleněn do listu structů, které mají jako vlastnost další list strructů. A potřeboval bych přidat string k té nejvnitřnější vlastnosti:
subExpressions[subExpressions[index].Level].Expression[subExpressions[index].Index].Content += Calculate(subExpressions[index].Expression);
Ale v C# se dá editovat jen obyčejný list. Takovéto složitosti mi to vždy ignorovalo. Jenže nyní by se to šiklo více, než kdy dříve. Jinak bych musel přistoupit k složitému předávání listu, kterů bude určovat co se kde a na co bude měnit... V čem tedy tkví problém takto hluboké editace? Popř. jak to lépe řešit?
Vlastnost Level určuje level zanoření daného vzorce - závorka. (Beru to jako vzorec ve vzorci - a rozkládám tedy z pole subvzorců do listu vzorců s indexem kam vložit výsledek.) Takže vše co potřebuji je systém, jak parsovat list vzorců tak, aby se výsledky subvzorců zasazovaly do rodičovského vzorce... Na vrchu toho složitého listu je vždy závorka, které nic nechybí - dá se spočítat bez znalosti výsledku nějakého subvzorce. Kam ale vložit její výsledek, aby se dal spočítat subvzorec hned pod ní...
Děkuji.