|
|
DataMuseum.dkPresents historical artifacts from the history of: DKUUG/EUUG Conference tapes |
This is an automatic "excavation" of a thematic subset of
See our Wiki for more about DKUUG/EUUG Conference tapes Excavated with: AutoArchaeologist - Free & Open Source Software. |
top - metrics - downloadIndex: T o
Length: 1744 (0x6d0)
Types: TextFile
Names: »or_dmn2or.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0
└─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z«
└─⟦e5a54fb17⟧
└─⟦this⟧ »pp-5.0/Lib/or/or_dmn2or.c«
/* or_dmn2or: convert dmn form to or list */
# ifndef lint
static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_dmn2or.c,v 5.0 90/09/20 16:08:03 pp Exp Locker: pp $";
# endif
/*
* $Header: /cs/research/pp/hubris/pp-beta/Lib/or/RCS/or_dmn2or.c,v 5.0 90/09/20 16:08:03 pp Exp Locker: pp $
*
* $Log: or_dmn2or.c,v $
* Revision 5.0 90/09/20 16:08:03 pp
* rcsforce : 5.0 public release
*
*/
#include "or.h"
#include "util.h"
OR_ptr or_dmn2or (istr)
char *istr;
{
OR_ptr tree,
part;
char *sargv[50],
*valptr,
str[LINESIZE];
int count,
ortype,
sargc;
PP_DBG (("or_util.c/or_dmn2or (%s)", istr));
(void) strcpy (str, istr);
/*
sstr2arg isn't nice, add cheks for legal char set
*/
tree = NULLOR;
sargc = sstr2arg (str, 49, sargv, ".");
for (count = 0; count < sargc; count++) {
PP_DBG (("or_util.c/or_dmn2or Component '%s'", sargv[sargc]));
valptr = index (sargv[count], '$');
if (valptr == NULLCP) {
PP_LOG (LLOG_EXCEPTIONS,
("or_util.c/or_dmn2or No dollar in dmn encoding"));
or_free (tree);
return NULLOR;
}
*valptr = '\0';
valptr++;
/*
domain defined
*/
if (sargv[count][0] == '~') {
part = or_new (OR_DD, &sargv[count][1], valptr);
if ((tree = or_add (tree, part, TRUE)) == NULLOR)
return NULLOR;
}
else {
ortype = or_name2type (sargv[count]);
if (ortype == NOTOK) {
PP_LOG (LLOG_EXCEPTIONS,
("or_util.c/or_dmn2or Unknown type '%s'",
sargv[count]));
or_free (tree);
return NULLOR;
}
part = or_new (ortype, NULLCP, valptr);
if ((tree = or_add (tree, part, TRUE)) == NULLOR)
return NULLOR;
}
} /* end of for */
return (tree);
}