From 09f57c8dffd9a8ba0983cce13381aef716f43801 Mon Sep 17 00:00:00 2001 From: chatty Date: Tue, 28 Nov 2000 14:19:34 +0000 Subject: *** empty log message *** --- utils/testchain.cc | 65 ++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 65 insertions(+) create mode 100644 utils/testchain.cc (limited to 'utils/testchain.cc') diff --git a/utils/testchain.cc b/utils/testchain.cc new file mode 100644 index 0000000..ae5fef8 --- /dev/null +++ b/utils/testchain.cc @@ -0,0 +1,65 @@ +#include +#include "String.h" +#include "Chain.h" + +class C { +public: + C* Next; + char* CcuString; +inline C (const char* c) : Next (0), CcuString (NewString (c)) {} +inline C* GetNext () const { /*printf ("GetNext (%x) = %x)\n", this, Next); */ return Next; } +inline void SetNext (C* c) { /*printf ("SetNext (%x, %x)\n", this, c); */ Next = c; } +}; + +main () +{ + CcuChainOf l; + char c; + char s[80]; + while ((c = getchar ()) != EOF) { + switch (c) { + case 'a': + scanf (" %s", s); + l.Append (new C (s)); + break; + case 'p': + scanf (" %s", s); + l.Prepend (new C (s)); + break; + case '+': + l.RemoveFirst (); + break; + case '-': + l.RemoveLast (); + break; + case '\n': + continue; + case 'i': + { + int i; + scanf (" %d %s", &i, s); + CcuChainIterOf lj (l); + while ((i-- > 0) && ++lj) + ; + l.InsertBefore (lj, new C (s)); + break; + } + case 'j': + { + int i; + scanf (" %d %s", &i, s); + CcuChainIterOf lj (l); + while ((i-- > 0) && ++lj) + ; + l.InsertAfter (lj, new C (s)); + break; + } + } + CcuChainIterOf li (l); + while (++li) { + C* pt = *li; + printf ("%s ", pt->CcuString); + } + printf ("\n"); + } +} -- cgit v1.1