Added dependency store, largely borrowed from an EPICS-focused side project that has an optional blark dependency (whatrecord)
Parse project + all dependencies that have source code available
Using the summary classes, relatively easily poke around with source code objects
Removed unused dataclasses + grammar rules
Closes #18
Up for discussion if I'm missing something
Task config, instruction lists, SFC networks, ...
Grammar fixes
Functions can return indirect types
Added variable attribute flags to blocks where accepted, according to infosys docs
Improved code summary utilities
Easier to use to find declarations and such
Add ProgramSummary, GlobalVariableSummary
Base type EXTENDS declarations are wrapped into the derived type
Added program and global variables to documentation generation (sphinx domain)
Added apischema-based serialization in the test suite
This helped improve the type annotations in places as round-tripping validation was failing
However, Python 3.9+ with apischema 0.17.5 (did not test other versions) is hitting an infinite loop when attempting to serialize most of the data structures. Serialization testing for those Python versions is disabled for now until I get a chance to dig in / report the issue if it's not on my end
Python 3.7 and Python 3.8 are testing serialization with the transformed dataclasses just fine though
ProgramSummary
,GlobalVariableSummary
EXTENDS
declarations are wrapped into the derived type