7198f23361
table exactly and I fear that it makes the ACIP->Tibetan converter code a lot uglier. The TODO(DLC)[EWTS->Tibetan] comments littered throughout are part of the ugliness; they point to the ugliness. If each were addressed, cleanliness could perhaps be achieved. I've largely forgotten exactly what this change does, but it attempts to improve EWTS->Tibetan conversion. The lexer is probably really, really primitive. I concentrate here on converting a single tsheg bar rather than a whole document. Eclipse was used during part of my journey here and some imports were reorganized merely because I could. :) (Eclipse was needed when the usual ant build failed to run a new test EWTSTest. And I wanted its debugger.) Next steps: end-to-end EWTS tests should bring many problems to light. Fix those. Triage all the TODO comments. I don't know that I'll ever really trust the implementation. The tests are valuable, though. A clean implementation of EWTS->Tibetan in Jython might hold enough interest for me; I'd like to learn Python.
113 lines
2.3 KiB
Java
113 lines
2.3 KiB
Java
/*
|
|
The contents of this file are subject to the AMP Open Community License
|
|
Version 1.0 (the "License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License on the AMP web site
|
|
(http://www.tibet.iteso.mx/Guatemala/).
|
|
|
|
Software distributed under the License is distributed on an "AS IS" basis,
|
|
WITHOUT WARRANTY OF ANY KIND, either express or implied. See the
|
|
License for the specific terms governing rights and limitations under the
|
|
License.
|
|
|
|
The Initial Developer of this software is Andres Montano Pellegrini. Portions
|
|
created by Andres Montano Pellegrini are Copyright 2001 Andres Montano
|
|
Pellegrini. All Rights Reserved.
|
|
|
|
Contributor(s): ______________________________________.
|
|
*/
|
|
|
|
package org.thdl.util;
|
|
|
|
/** Used by {@link SimplifiedLinkedList} to provide the implementation of a
|
|
simple dynamic link list.
|
|
|
|
@author Andrés Montano Pellegrini
|
|
@see SimplifiedLinkedList
|
|
@see SimplifiedListIterator
|
|
*/
|
|
|
|
public class Link
|
|
{
|
|
private Object obj;
|
|
public Link siguiente;
|
|
|
|
public Link(Object obj)
|
|
{
|
|
this.obj = obj;
|
|
siguiente = null;
|
|
}
|
|
|
|
public String toString()
|
|
{
|
|
return obj.toString();
|
|
}
|
|
|
|
public Link createNext(Object obj)
|
|
{
|
|
return siguiente = new Link(obj);
|
|
}
|
|
|
|
public Link createPrevious(Object obj)
|
|
{
|
|
Link l = new Link(obj);
|
|
l.siguiente=this;
|
|
return l;
|
|
}
|
|
|
|
public Object get()
|
|
{
|
|
return obj;
|
|
}
|
|
|
|
public Link next()
|
|
{
|
|
return this.siguiente;
|
|
}
|
|
public int size()
|
|
{
|
|
int n=0;
|
|
Link actual = this;
|
|
while (actual != null)
|
|
{
|
|
n++;
|
|
actual = actual.next();
|
|
}
|
|
return n;
|
|
}
|
|
|
|
public Object clone()
|
|
{
|
|
return new Link(obj);
|
|
}
|
|
|
|
public Link sort()
|
|
{
|
|
Link newCabeza = (Link) clone(), next = next(), newLink;
|
|
while (next!=null)
|
|
{
|
|
newLink = (Link) next.clone();
|
|
if (newLink.toString().compareTo(newCabeza.toString())<=0)
|
|
{
|
|
newLink.siguiente = newCabeza;
|
|
newCabeza = newLink;
|
|
}
|
|
else newCabeza.insertSorted(newLink);
|
|
next = next.next();
|
|
}
|
|
return newCabeza;
|
|
}
|
|
|
|
public void insertSorted(Link link)
|
|
{
|
|
if (siguiente==null)
|
|
siguiente = link;
|
|
else
|
|
if (link.toString().compareTo(siguiente.toString())<=0)
|
|
{
|
|
link.siguiente = siguiente;
|
|
siguiente = link;
|
|
}
|
|
else siguiente.insertSorted(link);
|
|
}
|
|
|
|
}
|