1 21 22 package org.armedbear.j; 23 24 public final class LispTag extends LocalTag 25 { 26 public LispTag(String name, Position pos) 27 { 28 super(name, pos); 29 } 30 31 public LispTag(String name, Position pos, int type) 32 { 33 super(name, pos, type); 34 } 35 36 public String getLongName() 37 { 38 String s = signature.trim(); 39 40 if (s.startsWith("(")) 41 s = s.substring(1).trim(); 42 43 int end = 0; 45 final int limit = s.length(); 46 for (int i = 0; i < limit; i++) { 47 char c = s.charAt(i); 48 if (c == ' ' || c == '\t') { 49 end = i; 50 break; 51 } 52 } 53 String d = s.substring(0, end); 54 55 if (d.equals("defgeneric") || d.equals("defmethod")) 56 return signature; 57 58 s = s.substring(end).trim(); 59 end = s.length(); 60 FastStringBuffer sb = new FastStringBuffer('('); 61 sb.append(d); 62 sb.append(' '); 63 for (int i = 0; i < end; i++) { 64 char c = s.charAt(i); 65 if (c == ' ' || c == '\t') { 66 sb.append(s.substring(0, i)); 67 sb.append(" ..."); 68 return sb.toString(); 69 } 70 if (c == ')') { 71 sb.append(s.substring(0, i+1)); 72 return sb.toString(); 73 } 74 } 75 sb.append(s.substring(0, end)); 76 sb.append(" ..."); 77 return sb.toString(); 78 } 79 } 80 | Popular Tags |