1 21 22 package org.armedbear.j; 23 24 import gnu.regexp.RE; 25 import gnu.regexp.REMatch; 26 import gnu.regexp.UncheckedRE; 27 import java.util.ArrayList ; 28 29 public final class PerlTagger extends Tagger 30 { 31 private static final RE subRE = 34 new UncheckedRE("^sub\\s+([a-zA-Z0-9_]+(::[a-zA-Z0-9_]+)*)"); 35 36 public PerlTagger(SystemBuffer buffer) 37 { 38 super(buffer); 39 } 40 41 public void run() 42 { 43 ArrayList tags = new ArrayList (); 44 Line line = buffer.getFirstLine(); 45 while (line != null) { 46 String s = line.trim(); 47 if (s != null && s.startsWith("sub")) { 48 if (s.charAt(s.length()-1) != ';') { 50 REMatch match = subRE.getMatch(s); 51 if (match != null) { 52 String token = s.substring(match.getSubStartIndex(1), 53 match.getSubEndIndex(1)); 54 tags.add(new PerlTag(token, line)); 55 } 56 } 57 } 58 line = line.next(); 59 } 60 buffer.setTags(tags); 61 } 62 } 63 | Popular Tags |