Listing 4: DFAHandler.java
protected static class DFAHandler
extends DefaultHandler
{
protected DFATable table;
protected int state;
protected Stack stack;
public DFAHandler(DFATable table)
{
this.table = table;
}
public void startDocument()
{
state = -1;
stack = new Stack();
}
public void startElement(String namespaceURI,
String localName,
String qualifiedName,
Attributes atts)
{
stack.push(new Integer(state));
QName qname = new QName(QName.ELEMENT,
namespaceURI,
localName);
state = table.move(qname,state);
System.out.println(qname.toString() +
" caused a transition to " +
state);
if(table.isAcceptingState(state))
System.out.println("found " +
table.getAssociatedData(state));
}
public void endElement(String namespaceURI,
String localName,
String qualifiedName)
{
state = ((Integer)stack.pop()).intValue();
}
} |
<db:sect1 xmlns:db="http://www.ananas.org/2001/docbook"> <db:sect1info/> <db:simpara/> <db:simpara><db:ulink/></db:simpara> </db:sect1> |
