[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

Re: gEDA-user: Parsing and writing schematics with Perl



http://search.cpan.org/dist/Parse-GEDA-Gschem/

Parse::GEDA::Gschem version 1.00

NAME

     Parse::GEDA::Gschem - gEDA/gaf gschem schematic file parser


DESCRIPTION

     Collection of routines used to parse and write back schematic  
files of the
     format specified by gEDA gschem schematic capture tool as  
detailed at:
     http://www.geda.seul.org/wiki/geda:file_format_spec


REQUIREMENTS:
     perl 5.10


EXAMPLE:
     my @schFiles = (); # array of schematic file path/names
     my @files = ();    # array of schematic objects
     bakSchFiles(\@schFiles); # backup schematic files in bak/year-m- 
d_h-m-s/
     $files = @{readSchFiles(\@schFiles)}; # parses the schematic files
     writeMsg(1, Dumper(\@files)); # prints out the entire data  
structure
     writeSchFiles(\@files); # write the data structure into schematic  
files

     Parse::gaf::gschem is a collection of routines used to parse  
a .sch file
     into a convenient perl array of hashes data structure in memory.
     This array can then be used to extract information about the  
schematics,
     or it can be altered to apply specific changes to the schematics.
     The array can then be written back to the schematic files.
     One could even build such array of hashes data structure without  
reading
     any input schematic file to programmatically generate new  
schematic files.


LIMITATIONS
     [see README file]

Does not handle the new "path" objects, see http://geda.seul.org/wiki/geda:file_format_spec 
, and does not check for the validity of the file format version  
either, sorry. I will fix this.

You can't search for it on http://search.cpan.org yet, but you can  
browse to it, or use the link http://search.cpan.org/dist/Parse-GEDA-Gschem/

You need perl 5.10.0 or higher.

You need http://search.cpan.org/~dconway/Parse-RecDescent-1.96.0/, or  
higher, which you can only get by downloading it. Using the usual  
"cpan install Parse::RecDescent" will only get you version 1.94, which  
has known bugs.

Tested on ubuntu-8.10-desktop-amd64, on VMWare Fusion 2.0.

Please try it out, see the demo in the demo/ directory, and let me  
know of any issues.

Stay tuned for more to come about an enhanced version of demo/ 
demo_geda-usch.pl and design workflow.

Enjoy! And please be gentle, I am no SW programmer...

_jP

On Apr 21, 2008, at 1:31 PM, Peter Clifton wrote:

> On Mon, 2008-04-21 at 13:03 +0200, fricker wrote:
>>> On 21 avr. 08, at 11:39, Peter Clifton wrote:
>>>> On 21 avr. 08, at 10:22, fricker wrote:
>>>>
>>>> What I need to achieve all of this is a Perl module that offers:
>>>> - readFiles(\@files) that returns a reference to an array of hashes
>>>> (file names are pushed into the data structure)
>>>> - writeFiles(\@data) that writes the data structure back into the
>>>> files (file names are within the data structure already)
>>>>
>>>> I could package what I have and share it if anyone is interested.
>>>
>>> I think a lot of people would appreciate that, I'd certainly be
>>> interested.
>>
>> Hum, what would be the best way to distribute (and maintain) such
>> thing then?
>> 1) make it part of the gEDA distribution
>> 2) keep it independent and post it on CPAN, as Parser::gschem by  
>> example
>> 3) ?
>>
>> My guess is that 2) is probably more effective, any other opinion?
>> Please speak-up.
>
> Its been a long time since I coded with Perl (aside from modifying
> refdes_renum), so am not really up-to-date with how modules are
> distributed. Is it a single .pm file, or a more complex archive?
>
> Many contributors sign up for an account on http:// 
> www.gedasymbols.org/
> and post their scripts, footprints, symbols there.
>
> Best wishes,
>
> Peter C.
>
>
>
>
> _______________________________________________
> geda-user mailing list
> geda-user@xxxxxxxxxxxxxx
> http://www.seul.org/cgi-bin/mailman/listinfo/geda-user



_______________________________________________
geda-user mailing list
geda-user@xxxxxxxxxxxxxx
http://www.seul.org/cgi-bin/mailman/listinfo/geda-user