Docjar: A Java Source and Docuemnt Enginecom.*    java.*    javax.*    org.*    all    new    plug-in

Quick Search    Search Deep

org.eclipse.ant.internal.ui.dtd.schema
Class NfmNode  view NfmNode download NfmNode.java

java.lang.Object
  extended byorg.eclipse.ant.internal.ui.dtd.schema.NfmNode
All Implemented Interfaces:
org.eclipse.ant.internal.ui.dtd.util.FactoryObject

public class NfmNode
extends java.lang.Object
implements org.eclipse.ant.internal.ui.dtd.util.FactoryObject

Non-deterministic finite state machine node.

Following Aho & Ullman, nfm nodes contain two transition links. The graph is constructed so that no node requires more than two links. There are exactly these kinds of nodes:

		Symbol	Next1	Next2	Meaning
		  "a"	 fwd	 null	Regexp "a"
		  null	 null	 null	Accepting node
		  null	 fwd1	 fwd2	Start node of ? and * regexp
								fwd2 points to stop node
		  null	 fwd	 bkw	Internal node of + and * regexp
								fwd points to stop node
								bkw points, e.g., in "a*" to start node of "a"
		  null	 fwd1	 fwd2	Start node of | regexp, e.g., "a|b",
								fwd nodes point to start nodes of "a" and "b".
		  null	 fwd	 null	Internal node of |.
								fwd points to stop node.
 
See Nfm for pictures of how nodes are used.


Field Summary
 Dfm dfm
           
private static org.eclipse.ant.internal.ui.dtd.util.Factory fFactory
           
private static org.eclipse.ant.internal.ui.dtd.util.FactoryObject fUsed
           
 int mark
           
private  NfmNode next
           
 NfmNode next1
           
 NfmNode next2
           
 org.eclipse.ant.internal.ui.dtd.IAtom symbol
           
 
Constructor Summary
private NfmNode()
           
 
Method Summary
static void freeAll()
          Free all NfmNodes in use.
private static NfmNode getFree()
           
 org.eclipse.ant.internal.ui.dtd.util.FactoryObject next()
           
 void next(org.eclipse.ant.internal.ui.dtd.util.FactoryObject obj)
           
static NfmNode nfmNode()
           
static NfmNode nfmNode(org.eclipse.ant.internal.ui.dtd.IAtom symbol, NfmNode next)
           
static NfmNode nfmNode(NfmNode next)
           
private static void setFree(NfmNode nfm)
           
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

symbol

public org.eclipse.ant.internal.ui.dtd.IAtom symbol

next1

public NfmNode next1

next2

public NfmNode next2

dfm

public Dfm dfm

mark

public int mark

next

private NfmNode next

fFactory

private static org.eclipse.ant.internal.ui.dtd.util.Factory fFactory

fUsed

private static org.eclipse.ant.internal.ui.dtd.util.FactoryObject fUsed
Constructor Detail

NfmNode

private NfmNode()
Method Detail

nfmNode

public static NfmNode nfmNode(org.eclipse.ant.internal.ui.dtd.IAtom symbol,
                              NfmNode next)

nfmNode

public static NfmNode nfmNode(NfmNode next)

nfmNode

public static NfmNode nfmNode()

freeAll

public static void freeAll()
Free all NfmNodes in use.


next

public org.eclipse.ant.internal.ui.dtd.util.FactoryObject next()
Specified by:
next in interface org.eclipse.ant.internal.ui.dtd.util.FactoryObject

next

public void next(org.eclipse.ant.internal.ui.dtd.util.FactoryObject obj)
Specified by:
next in interface org.eclipse.ant.internal.ui.dtd.util.FactoryObject

getFree

private static NfmNode getFree()

setFree

private static void setFree(NfmNode nfm)