|
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); }