X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fcom%2Fstevesoft%2Fpat%2FOrMark.java;h=ce1ecadf482e5fa83bbfda4bff6e2861e74deca2;hb=refs%2Fheads%2Fmerges%2FJAL-2906_update2_11_from_2_10_4;hp=c323a9d41b3f72ae8937becd7495590a3dd364dd;hpb=f24dacb1da56fccf05d684e2f4899facec2aecf7;p=jalview.git diff --git a/src/com/stevesoft/pat/OrMark.java b/src/com/stevesoft/pat/OrMark.java index c323a9d..ce1ecad 100755 --- a/src/com/stevesoft/pat/OrMark.java +++ b/src/com/stevesoft/pat/OrMark.java @@ -1,50 +1,73 @@ -// -// This software is now distributed according to -// the Lesser Gnu Public License. Please see -// http://www.gnu.org/copyleft/lesser.txt for -// the details. -// -- Happy Computing! -// -package com.stevesoft.pat; -import java.util.Hashtable; - -/** Implements the parenthesis pattern subelement.*/ -class OrMark extends Or { - SubMark sm = new SubMark(); - int id; - OrMark(int i) { - sm.om = this; - id = i; - } - String leftForm() { return "("; } - public Pattern getNext() { - return sm; - } - public int matchInternal(int pos,Pthings pt) { - sm.next = super.getNext(); - if(pt.marks == null) { - int n2 = 2 * pt.nMarks+2; - pt.marks = new int[n2]; - for(int i=0;i pt.marks[id+pt.nMarks]) { - int swap = pt.marks[id]; - pt.marks[id] = pt.marks[id+pt.nMarks]+1; - pt.marks[id+pt.nMarks] = swap+1; - } - return ret; - } - public Pattern clone1(Hashtable h) { - OrMark om = new OrMark(id); - h.put(om,om); - h.put(this,om); - for(int i=0;i pt.marks[id + pt.nMarks]) + { + int swap = pt.marks[id]; + pt.marks[id] = pt.marks[id + pt.nMarks] + 1; + pt.marks[id + pt.nMarks] = swap + 1; + } + return ret; + } + + public Pattern clone1(Hashtable h) + { + OrMark om = new OrMark(id); + h.put(om, om); + h.put(this, om); + for (int i = 0; i < v.size(); i++) + { + om.v.addElement(((Pattern) v.elementAt(i)).clone(h)); + } + return om; + } +};