X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fcom%2Fstevesoft%2Fpat%2FOrMark.java;fp=src%2Fcom%2Fstevesoft%2Fpat%2FOrMark.java;h=e9bf0cad0a81b8e0fc312cf303da0d8e9a3d2871;hb=c40cf903f740a72ab63dd1abc10fa33450ce660d;hp=0000000000000000000000000000000000000000;hpb=5bcae030b489e670c6983aa97eb9b6d8a6bbbbd5;p=jalview.git diff --git a/src/com/stevesoft/pat/OrMark.java b/src/com/stevesoft/pat/OrMark.java new file mode 100755 index 0000000..e9bf0ca --- /dev/null +++ b/src/com/stevesoft/pat/OrMark.java @@ -0,0 +1,51 @@ +// +// 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; +import java.util.Vector; + +/** 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