X-Authentication-Warning: delorie.com: mail set sender to geda-user-bounces using -f X-Recipient: geda-user AT delorie DOT com X-Injected-Via-Gmane: http://gmane.org/ To: geda-user AT delorie DOT com From: Kai-Martin Knaak Subject: Re: [geda-user] C/C++ parsing library for PCB file format? Date: Tue, 02 Apr 2013 21:51:41 +0200 Organization: Institut =?UTF-8?B?ZsO8cg==?= Quantenoptik Lines: 28 Message-ID: References: <1359476624 DOT 4235 DOT 9 DOT camel AT AMD64X2> <201301291656 DOT r0TGuix1011799 AT envy DOT delorie DOT com> <1364924842 DOT 3408 DOT 13 DOT camel AT AMD64X2 DOT fritz DOT box> Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: usenet AT ger DOT gmane DOT org X-Gmane-NNTP-Posting-Host: bibo.iqo.uni-hannover.de User-Agent: KNode/4.4.11 Reply-To: geda-user AT delorie DOT com Stefan Salewski wrote: > For now I will try parsing direct from Ruby, Ruby is really good in > RegExp processing. And I think chances are good that PCB's file format > will never change any more... I sincerely hope, that this is not true. Some highly desirable features would require changes of the format. Think blind and burried vias, generalized layers, footprints with letters, net classes, net aware polygons, ... > I have seen that kicad is using a similar text based file format like > PCB, while Eagle seems to use bloat XML now. XML does not necessarily mean bloat. This is much like C source code which can by pretty cryptic but can also be very readable. IMHO, the main benefit of a XML compliant format would be the availability of resilient parsers in quite a number of circumstances. Lately, even the gnu version of awk aquired XML parsing abilities (http://gawkextlib.sourceforge.net/ ) I'd say, the current file format of pcb is quite nice, concise and appropriate for the current job. It "just" lacks the ability to be changed in a backward compatible way. In some cases, the recently introduced attributes can be used. But in other cases this does not work. ---<)kaimartin(>----