← Back to team overview

kicad-developers team mailing list archive

Sweet parser

 

Wayne,

You had said that you would want to write the Sweet parser.

Wayne's World:
=============

I now have all the /new infrastructure in place to load Sweet strings driven
by test
program test_sch_lib_table.  If you were to mostly confine yourself to
basically that one
function, PART::Parse() for now, we could now work in parallel without
stepping on each other.

Steps to get a build of test_sch_lib_table working:

1) Generate the test input data by running script
make-dir-lib-source-test-data.sh
Edit it as wanted, understand the script.

2) $ cd <kicad>/new
3) $ mkdir build
4) $ cd build
5) $ cmake -DCMAKE_BUILD_TYPE=Debug ../
6) $ make
7) $ ./test_sch_lib_table

The int main() function is in sch_lib_table.cpp.

You can and should edit the (lib_table ) element to point to a different,
more permanent directory than tmp.
Coordinate this with an edit to make-dir-lib-source-test-data.sh.

The currently loaded part is "meparts:tigers/ears/rev10" at line 410 of
sch_lib_table.cpp.

You can edit the file tigers/ears.part.rev10 with a text editor and build up
your input for the parser.

If you need more help or don't want to do this anymore, please let me know. 
I have raced to get to this point, and will be going back over some things
that need better robustness either way, especially in the area of error
reporting, not so much functionality.

sch_part.h has the new "contains" field we talked about, along with PB() and
PartBits.  You should even be able to write Inherits() as you get to that
point.  Inherits() will only ever be called from Parse().

The Parse() function is in sch_part.cpp, and I just took it far enough get
you a playground.  I am here to help.

Thanks!

Dick

Copying the mailing list too.





Follow ups