1 21 22 package org.armedbear.j; 23 24 import java.util.StringTokenizer ; 25 26 public final class JavaVariable 27 { 28 public static final int FIELD = 1; 30 public static final int PARAMETER = 2; 31 public static final int LOCAL = 3; 32 33 private final String type; 34 private final String name; 35 private final int what; 36 37 public JavaVariable(String s, int what) 38 { 39 StringTokenizer st = new StringTokenizer (s); 40 FastStringBuffer sb = new FastStringBuffer(); 41 while (st.hasMoreTokens()) { 42 sb.append(st.nextToken()); 43 sb.append(' '); 44 } 45 s = sb.toString(); 46 int length = s.length(); 47 for (int i = length-1; i >= 0; i--) { 48 if (" \t=;,".indexOf(s.charAt(i)) >= 0) 49 --length; 50 else 51 break; 52 } 53 s = s.substring(0, length); 54 int index = s.lastIndexOf(' '); 55 if (index < 0) 56 index = s.lastIndexOf('\t'); 57 if (index >= 0) { 58 type = s.substring(0, index); 59 name = s.substring(index+1).trim(); 60 } else { 61 type = ""; 62 name = s; 63 } 64 this.what = what; 65 } 66 67 public final String getName() 68 { 69 return name; 70 } 71 72 public String toString() 73 { 74 FastStringBuffer sb = new FastStringBuffer(type); 75 sb.append(' '); 76 sb.append(name); 77 sb.append(" ("); 78 switch (what) { 79 case FIELD: 80 sb.append("field"); 81 break; 82 case PARAMETER: 83 sb.append("parameter"); 84 break; 85 case LOCAL: 86 sb.append("local variable"); 87 break; 88 } 89 sb.append(")"); 90 return sb.toString(); 91 } 92 } 93 | Popular Tags |