<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd"><html><head><meta name="qrichtext" content="1" /><style type="text/css">p, li { white-space: pre-wrap; }</style></head><body style=" font-family:'Consolas'; font-size:11pt; font-weight:400; font-style:normal;">On Friday 18 July 2008, Andreas Pakulat wrote:<br>
> I have to admit that after looking through the API and implementation<br>
> I'm not quite sure how to properly implement something like this:<br>
><br>
> FOO=BAR<br>
> BAZ=$FOO<br>
> SOMEVAR=$BAZ<br>
><br>
> where I of course want SOMEVAR=BAR as result. The problem I'm having<br>
> here is that the list of variables I have as input is not ordered like<br>
> above.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"></p>When I solved the problem in abakus (a calculator app) I basically made a dependency tree and then wrote out functions in a pre-order traversal so that dependencies of functions were available when it came time to redefine a function on startup.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"></p>This would break if the user reordered the functions themselves but abakus would simply load the functions incorrectly instead of looping so I was satisfied with that.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"></p>But this requires some degree of parsing so unless the requirements are very simple (i.e. always of the form FOO=$BAR) it may not be worth the effort.<br>
<p style="-qt-paragraph-type:empty; margin-top:0px; margin-bottom:0px; margin-left:0px; margin-right:0px; -qt-block-indent:0; text-indent:0px; -qt-user-state:0;"></p>Regards,<br>
 - Michael Pyne</p></body></html>