Files
SyncHome/trunk/ulp/source/stack.ulp
paolo.iocco ab6f495c89
2023-03-09 10:24:21 +00:00

67 lines
963 B
Plaintext

/*
* A stack.
*
*/
string m_ary[];
char FIELD_SEP = '\t';
char RECORD_SEP = '\n';
string push(string stack, string entry)
{
return stack + entry + RECORD_SEP;
}
string top(string stack)
{
int num = strsplit(m_ary, stack, RECORD_SEP);
return m_ary[num - 1];
}
string pop(string stack)
{
int off = strrchr(stack, RECORD_SEP, -2);
return strsub(stack, off);
}
string bottom(string stack)
{
return "";
}
string shift(string stack)
{
return "";
}
string unshift(string stack, string entry)
{
return "";
}
string t;
t = push(t, "aaa");
t = push(t, "bbb");
t = push(t, "ccc");
string msg;
string qqq;
sprintf(msg, "stack:\n%s", t);
qqq = qqq + msg;
string s;
s = top(t);
sprintf(msg, "top:\n%s", s);
qqq = qqq + msg;
t = pop(t);
s = top(t);
sprintf(msg, "top:\n%s", s);
qqq = qqq + msg;
t = push(t, "ddd");
sprintf(msg, "stack:\n%s", t);
qqq = qqq + msg;
dlgMessageBox(qqq);