view ueda/uschem-netlist/pintonet.c @ 19:1d4c693b8f35

unet-bind: sverp netlist reading implemented
author Space Falcon <falcon@ivan.Harhan.ORG>
date Sun, 02 Aug 2015 03:09:15 +0000
parents cd92449fdb51
children
line wrap: on
line source

#include <sys/types.h>
#include <stdio.h>
#include "netlist.h"
#include "../libuschem/schemstruct.h"

extern struct net *get_nethead_for_netname();

check_compinst_pintonet(obj)
	register struct schemobj *obj;
{
	register struct decoration *decor;

	for (decor = obj->obj_decorations; decor; decor = decor->decor_next)
		switch (decor->decor_type) {
		case DECOR_TYPE_PINTONET:
			handle_pintonet(obj, decor);
			continue;
		case DECOR_TYPE_NOCONNECT:
			handle_noconnect_decor(obj, decor);
			continue;
		}
}

handle_pintonet(comp, decor)
	struct schemobj *comp;
	register struct decoration *decor;
{
	register char *soughtpin;
	int bynum;
	register struct net *n;

	soughtpin = decor->decorpincon_pin;
	if (soughtpin[0] == '#') {
		soughtpin++;
		bynum = 1;
	} else
		bynum = 0;
	n = get_nethead_for_netname(decor->decorpincon_netname);
	do_connect(n, comp, soughtpin, bynum, decor->decor_lineno);
}

handle_noconnect_decor(comp, decor)
	struct schemobj *comp;
	register struct decoration *decor;
{
	register char *soughtpin;
	int bynum;

	soughtpin = decor->decorpincon_pin;
	if (soughtpin[0] == '#') {
		soughtpin++;
		bynum = 1;
	} else
		bynum = 0;
	do_noconnect(comp, soughtpin, bynum, decor->decor_lineno);
}