*** empty log message ***
[chuck-blob.git] / v2 / test / p68.ck
blob8a7cb98a10756e054d0ec2e71ce0249e9ebcc6b0
1 // linked list Lifo;
3 class ListItem { 
4         int data;
5         ListItem @ next;
6         fun void push ( ListItem it ) { 
7                 if ( next != null ) next.push(it);
8                 else it @=> next;
9         } 
10         fun int isLast() { 
11                 return ( next == null ) ? 1 : 0 ;
12         }
13         fun ListItem pop () { 
14                 if ( next.isLast() != 0 ) {
15                         next @=> ListItem @ n;
16                         null @=> next; 
17                         return n;
18                 }
19                 else return next.pop();
20         }
24 class Lifo { 
25         int num;
26         ListItem @ root;
27         fun void push( ListItem it) { 
28                 root @=> it.next;
29                 it @=> root;
30         }
31         fun ListItem pop() { 
32                 if ( root == null ) return null;
33                 root @=> ListItem @ ret;
34                 root.next @=> root;
35                 return ret;
36         }
39 Lifo f;
41 f.push( ListItem n );
42 f.push( ListItem p );
43 f.pop() @=> ListItem @ l;
45 <<<"success">>>;