home *** CD-ROM | disk | FTP | other *** search
/ Geek Gadgets 1 / ADE-1.bin / ade-dist / kaffe-0.5p4-src.tgz / tar.out / contrib / kaffe / test / general / java_class.java < prev   
Text File  |  1996-09-28  |  3KB  |  120 lines

  1. // JAVA version 
  2.  
  3. import java.io.*;
  4.  
  5.  
  6.  
  7.  
  8. // Just to spice things up a bit ..
  9.  
  10. class MyObject {
  11.         public int isObject() { return 1; }
  12. }
  13.  
  14.  
  15.  
  16. class Token extends MyObject {
  17.         String type ;
  18.         String value ;
  19.  
  20.  
  21.         public Token( String t , String v ){
  22.                         type = t ;
  23.                         value = v;
  24.         }
  25.         public String asText() {
  26.                 return "type: " + type + ";" + "value: " + value ; 
  27.         }
  28. }
  29.  
  30.  
  31.  
  32.  
  33. // Simple List class
  34.  
  35.  
  36. class ListNode {
  37.         Token           token;
  38.         ListNode        next;
  39.  
  40.         public ListNode( Token t ){
  41.                 token = t ;
  42.                 next = null;
  43.         }
  44. }
  45.  
  46.  
  47. class List extends Object {
  48.         ListNode        head ;
  49.         ListNode        tail;
  50.  
  51.         public List() {
  52.                 head = null ;
  53.                 tail = null;
  54.         }
  55.         public void put( Token t) {
  56.                 ListNode        node = new ListNode( t ) ;
  57.                 
  58.                 //System.out.println("putting " + t.asText() );
  59.  
  60.                 if( head == null || tail == null){
  61.                         
  62.                         head = node ;
  63.                         tail = node ;
  64.                 }
  65.                 else {
  66.                         // THIS CRASHES on 1554 nodes !!!
  67.                         tail.next = node;
  68.                         tail = node ;
  69.                 }
  70.         }
  71.  
  72.         public Token get( ) {
  73.                 if( head == null )
  74.                         return null ;
  75.  
  76.                 ListNode node = head;
  77.                 head = head.next ;
  78.  
  79.                 if( head == null )
  80.                         tail = null ;
  81.  
  82.                 return node.token ;
  83.         }
  84. }
  85.  
  86.                         
  87. // Do It 
  88.  
  89. class java_class {
  90.  
  91.         static void doit() {
  92.  
  93.                 List    list = new List();
  94.                 Token token;
  95.  
  96.         // Changing the 2000 to a 1000  fixes problem !
  97.                 // Actually any value < 1554 works fine !
  98.                 for( int i = 0 ; i < 2000 ; i++ ){
  99.  
  100.                         token = new Token( "some_type" , i  + "" ); 
  101.                         int random = token.isObject();
  102.  
  103.                         list.put( token );
  104.                         token = null;
  105.                 }
  106.                         
  107.  
  108.                 while( (token = list.get()) != null  ){
  109.                         System.out.println( token.asText() );
  110.                 }
  111.  
  112.         }
  113.         public static void main(String args[]){
  114.                 System.out.println("main");
  115.                 for( int i = 0 ; i < 100 ; i++ )
  116.                         doit();
  117.         }
  118.  
  119. }
  120.