parsing code files to identify dependencies? - Printable Version +- QB64 Phoenix Edition (https://staging.qb64phoenix.com) +-- Forum: Chatting and Socializing (https://staging.qb64phoenix.com/forumdisplay.php?fid=11) +--- Forum: General Discussion (https://staging.qb64phoenix.com/forumdisplay.php?fid=2) +--- Thread: parsing code files to identify dependencies? (/showthread.php?tid=1575) |
parsing code files to identify dependencies? - madscijr - 03-23-2023 From time to time I run into this issue where
If anyone has found any tools or written a script that can parse multiple files of QB-like code, making a map of what functions are contained in each, and parse them all to see what functions they call, so that for function X to work somewhere else, will produce a list of all the routines you'll need to move over (including their dependencies, and so on), I would be interested in hearing about it! RE: parsing code files to identify dependencies? - SMcNeill - 03-23-2023 Set up your functions to be LOAD_ONCE, like so: $IF MYFUNC_FOO = UNDEFINED THEN $LET MYFUNC_FOO = TRUE Function Foo Foo = 123 End Function $END IF The above can only load once (while your precompiler variable is undefined), and then it'll never load again (due to the $LET defining the variable). Like this, you assure that a routine only loads once and you avoid the glitches of trying to load it multiple times into your main program. RE: parsing code files to identify dependencies? - madscijr - 03-24-2023 (03-23-2023, 09:29 PM)SMcNeill Wrote: Set up your functions to be LOAD_ONCE, like so: Thanks - this will come in handy. But what I am talking about is more about programmatically analyzing code to learn what dependencies exist on custom functions, to know what subset of code to copy over, to eliminate unused code - quite the opposite of LOAD_ONCE, which is the approach of including everything and the programming environment won't blow up from duplicates. Also, this is for cleaning up more than QB64/PE programs, I have a need for this on a daily basis with VBA and VBScript. Anyway, thanks for your reply, I will file the LOAD_ONCE in my recipe box, you never know when something like that might come in handy! |