|
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 a
Length: 1486 (0x5ce) Types: TextFile Names: »ap_s2t.c«
└─⟦2d1937cfd⟧ Bits:30007241 EUUGD22: P.P 5.0 └─⟦dc59850a2⟧ »EurOpenD22/pp5.0/pp-5.tar.Z« └─⟦e5a54fb17⟧ └─⟦this⟧ »pp-5.0/Lib/addr/ap_s2t.c«
/* ap_s2t.c: convert a string into an address tree */ # ifndef lint static char Rcsid[] = "@(#)$Header: /cs/research/pp/hubris/pp-beta/Lib/addr/RCS/ap_s2t.c,v 5.0 90/09/20 16:04:08 pp Exp Locker: pp $"; # endif /* * $Header: /cs/research/pp/hubris/pp-beta/Lib/addr/RCS/ap_s2t.c,v 5.0 90/09/20 16:04:08 pp Exp Locker: pp $ * * $Log: ap_s2t.c,v $ * Revision 5.0 90/09/20 16:04:08 pp * rcsforce : 5.0 public release * */ #include "util.h" #include "ap.h" static char *ap_str_ptr; /* --------------------- Static Routines ------------------------------- */ static int get_a_char() /* -- get next character from string -- */ { if (*ap_str_ptr == '\0') /* -- end of the string -- */ return (-1); return (*ap_str_ptr++); } /* --------------------- Begin Routines -------------------------------- */ /* -- parse a string into an address tree -- */ AP_ptr ap_s2t (thestr) char *thestr; { int got_one; AP_ptr thetree; PP_DBG (("Lib/addr/ap_s2t (%s)", thestr)); ap_str_ptr = thestr; if ((thetree = ap_pinit (get_a_char)) == BADAP) return( NULLAP); ap_clear(); got_one = 0; for (;;) switch (ap_1adr()) { case NOTOK: ap_sqdelete (thetree, NULLAP); ap_free (thetree); return (NULLAP); case OK: /* -- more to process -- */ got_one++; continue; case DONE: if (got_one != 1){ ap_sqdelete(thetree, NULLAP); ap_free(thetree); thetree = BADAP; } return (thetree); } }