A follow-up after #146 related to those 2 comments
#146 (comment)
#146 (comment)
In the current format, get_code_dependency() works on code_dependency() that creates a structure of the dependency of objects found within the code. code_dependency() returns a named list of length 3. There is an idea that this list can be simplified to length 1. This list contains
occurence named list (names after all found symbols in the code) with integer vectors specifying in which call a symbol appeared
cooccurrence a list of length equal to the number of calls in input code, each element contains names of symbols appearing in this call. symbols are ordered so that the first element is the affected object
effects a named list (the same as occurence) specifying where linksto tags appeared for a specific object
occurence and effects could be merged into the same list
occurence and effects could be merged into cooccurence - if there is just one object in an element of the list, this is just an occurence or an effect. if there are more then this is cooccurrence. we need to sort out what if there is a cooccurrence that has an effect which will actually impact 2 objects (the affected and the one tagged with linksto
- what if
linktso has multiple objects ?
detect_symbol can be then used once (for cooccurrence and occurrence)
cooccurence could be a list of length equal to the number of call, where each element is a list containing 2 fields
- influenced - objects being impacted by this line
- influencers - object having an impact on this line
A follow-up after #146 related to those 2 comments
#146 (comment)
#146 (comment)
In the current format,
get_code_dependency()works oncode_dependency()that creates a structure of the dependency of objects found within the code.code_dependency()returns a named list of length 3. There is an idea that this list can be simplified to length 1. This list containsoccurencenamed list (names after all found symbols in the code) with integer vectors specifying in which call a symbol appearedcooccurrencea list of length equal to the number of calls in input code, each element contains names of symbols appearing in this call. symbols are ordered so that the first element is the affected objecteffectsa named list (the same asoccurence) specifying wherelinkstotags appeared for a specific objectoccurenceandeffectscould be merged into the same listoccurenceandeffectscould be merged intocooccurence- if there is just one object in an element of the list, this is just an occurence or an effect. if there are more then this iscooccurrence. we need to sort out what if there is acooccurrencethat has an effect which will actually impact 2 objects (the affected and the one tagged withlinkstolinktsohas multiple objects ?detect_symbolcan be then used once (forcooccurrenceandoccurrence)cooccurencecould be a list of length equal to the number of call, where each element is a list containing 2 fields