klauer / blark

Beckhoff TwinCAT ST (IEC 61131-3) code parsing in Python using Lark (Earley)
https://klauer.github.io/blark/
GNU General Public License v2.0
42 stars 5 forks source link

Support TwinCAT solutions/project/source code files directly #53

Closed klauer closed 1 year ago

klauer commented 1 year ago

blark will continue to support the current input formats - just without pytmc as a required dependency. I'm hoping to make file loading more easily customizable, with the option to load arbitrary file formats so long as you can provide an adapter (or a JSON-ified code block).

This is more of a TODO list at the moment - more details on the way soon.

Most of the following are at least somewhat done in the WIP branch wip_standalone_solution_parser:

klauer commented 1 year ago

@engineerjoe440, as part of this refactor, I'm going to be changing the command-line interface of blark parse pretty significantly. The blark.parse*() methods will also be getting reworked.

Will this get in the way of your usage? If it does, will it be an issue to adapt your use case?

engineerjoe440 commented 1 year ago

I don't think this should be too much of an issue. I suspect that I'll still be able to rework my tooling to derive from the refactoring changes you make. As long as the fundamental parsing is still possible, interface changes or function renames should not be a real issue. 👍

I'm excited to see how this all comes together, too! The tooling I've been working on is largely a linter for CODESYS-based systems, consuming the ST material from XML files, so there's some data-munging and manipulation that I have to do to get it correctly formatted for blark as it stands (nothing terrible, mind you!), so I'm excited to see what you're working on, specifically related to this remark:

Use source code file lines in linter output

Thank you, again, @klauer! I'm very excited about all of this!