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

Quick Search    Search Deep

com.voytechs.jnetstream.codec
Class Linker  view Linker download Linker.java

java.lang.Object
  extended bycom.voytechs.jnetstream.npl.Visitor
      extended bycom.voytechs.jnetstream.codec.Linker

public class Linker
extends com.voytechs.jnetstream.npl.Visitor


Field Summary
private static boolean debug
           
private  com.voytechs.jnetstream.npl.StatementContainer defaultCandidate
           
private static int F_LINK_HEADERS
           
private static int F_LINK_HEADERS_STAGE1
           
private static int F_LINK_HEADERS_STAGE2
           
private static int F_LINK_TYPES
           
private static int F_RECORD_SYMTABLE
           
private static int F_VARIABLE_REFERENCES
           
private  com.voytechs.jnetstream.npl.SymTable global
           
private  com.voytechs.jnetstream.npl.SymTable packet
           
private  int stage
           
private  java.util.Hashtable symTables
           
private  com.voytechs.jnetstream.npl.SymTable types
           
 
Constructor Summary
Linker(com.voytechs.jnetstream.npl.SymTable sym)
           
 
Method Summary
protected  void exportProperty(java.lang.String name, com.voytechs.jnetstream.npl.SymTable sym)
           
 void link(com.voytechs.jnetstream.npl.NodeList block)
           
 void linkHeaders(com.voytechs.jnetstream.npl.NodeList block)
           
 void loadTypePrimitives()
           
static void main(java.lang.String[] args)
          Test function for Linker
 void recordDefinitions(com.voytechs.jnetstream.npl.NodeList block)
          traverses the top level nodes and records their definitions in the SymTable.
 void resolveReferences(com.voytechs.jnetstream.npl.NodeList block)
           
 void resolveTypes(com.voytechs.jnetstream.npl.NodeList block)
           
 boolean traverse(com.voytechs.jnetstream.npl.AssertStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.ConstReferenceNode node, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.EnumReferenceNode node, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.EnumStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.FamilyStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.FieldStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.ForStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.HeaderStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.IfStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.LinkStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.MutableReferenceNode node, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.OpNode op, java.lang.Object user1, java.lang.Object user2)
          Special OpNode traversal routine that records the last node visited.
 boolean traverse(com.voytechs.jnetstream.npl.PrintStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.PropertyStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.VariableStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 boolean traverse(com.voytechs.jnetstream.npl.WhileStatement stat, java.lang.Object user1, java.lang.Object user2)
           
 
Methods inherited from class com.voytechs.jnetstream.npl.Visitor
traverse, traverse, traverse, traverse, traverse, visit
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

debug

private static final boolean debug
See Also:
Constant Field Values

F_RECORD_SYMTABLE

private static final int F_RECORD_SYMTABLE
See Also:
Constant Field Values

F_LINK_TYPES

private static final int F_LINK_TYPES
See Also:
Constant Field Values

F_VARIABLE_REFERENCES

private static final int F_VARIABLE_REFERENCES
See Also:
Constant Field Values

F_LINK_HEADERS

private static final int F_LINK_HEADERS
See Also:
Constant Field Values

F_LINK_HEADERS_STAGE1

private static final int F_LINK_HEADERS_STAGE1
See Also:
Constant Field Values

F_LINK_HEADERS_STAGE2

private static final int F_LINK_HEADERS_STAGE2
See Also:
Constant Field Values

global

private com.voytechs.jnetstream.npl.SymTable global

packet

private com.voytechs.jnetstream.npl.SymTable packet

types

private com.voytechs.jnetstream.npl.SymTable types

stage

private int stage

defaultCandidate

private com.voytechs.jnetstream.npl.StatementContainer defaultCandidate

symTables

private java.util.Hashtable symTables
Constructor Detail

Linker

public Linker(com.voytechs.jnetstream.npl.SymTable sym)
Method Detail

link

public void link(com.voytechs.jnetstream.npl.NodeList block)
          throws com.voytechs.jnetstream.npl.NodeException

resolveTypes

public void resolveTypes(com.voytechs.jnetstream.npl.NodeList block)
                  throws com.voytechs.jnetstream.npl.NodeException

resolveReferences

public void resolveReferences(com.voytechs.jnetstream.npl.NodeList block)
                       throws com.voytechs.jnetstream.npl.NodeException

linkHeaders

public void linkHeaders(com.voytechs.jnetstream.npl.NodeList block)
                 throws com.voytechs.jnetstream.npl.NodeException

exportProperty

protected void exportProperty(java.lang.String name,
                              com.voytechs.jnetstream.npl.SymTable sym)

recordDefinitions

public void recordDefinitions(com.voytechs.jnetstream.npl.NodeList block)
                       throws com.voytechs.jnetstream.npl.NodeException
traverses the top level nodes and records their definitions in the SymTable. Only statement are expected at this level. If any non-statement nodes ie. expression are found, an error message is reported.


loadTypePrimitives

public void loadTypePrimitives()
                        throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.FamilyStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.HeaderStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.FieldStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.AssertStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.LinkStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.MutableReferenceNode node,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.VariableStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.ConstReferenceNode node,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.EnumReferenceNode node,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.OpNode op,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException
Special OpNode traversal routine that records the last node visited.


traverse

public boolean traverse(com.voytechs.jnetstream.npl.IfStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.ForStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.WhileStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.PrintStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.EnumStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

traverse

public boolean traverse(com.voytechs.jnetstream.npl.PropertyStatement stat,
                        java.lang.Object user1,
                        java.lang.Object user2)
                 throws com.voytechs.jnetstream.npl.NodeException

main

public static void main(java.lang.String[] args)
Test function for Linker