summaryrefslogtreecommitdiffstats
path: root/src/classes/com/sun/gluegen/cgram/CSymbolTable.java
diff options
context:
space:
mode:
authorKenneth Russel <[email protected]>2006-01-15 03:25:55 +0000
committerKenneth Russel <[email protected]>2006-01-15 03:25:55 +0000
commit61d2579d7e6ccb1ac2fbb48d0410390a697bec16 (patch)
treea83ddfcf708e6572af0be2d4de6c7d3340db230e /src/classes/com/sun/gluegen/cgram/CSymbolTable.java
parentaad7268baef8142e33815a02034ef6af56442e63 (diff)
Moved GlueGen out of the JOGL workspace and into its own project.
Restructured JOGL and JOAL build processes to separately invoke GlueGen's main build.xml before using it to generate their code. Refactored OS/CPU detection code into gluegen-cpptasks.xml build file in GlueGen workspace, which is now imported by both the JOGL and JOAL build processes. Unfortunately it seems to be somewhat difficult to completely factor out the C compiler configuration into the GlueGen workspace so this has been left for a later date. Added missed ALProcAddressLookup file to JOAL workspace. Updated JOGL and JOAL build documentation. More documentation for the GlueGen workspace is forthcoming. git-svn-id: file:///usr/local/projects/SUN/JOGL/git-svn/svn-server-sync/jogl/trunk@542 232f8b59-042b-4e1e-8c03-345bb8c30851
Diffstat (limited to 'src/classes/com/sun/gluegen/cgram/CSymbolTable.java')
-rw-r--r--src/classes/com/sun/gluegen/cgram/CSymbolTable.java132
1 files changed, 0 insertions, 132 deletions
diff --git a/src/classes/com/sun/gluegen/cgram/CSymbolTable.java b/src/classes/com/sun/gluegen/cgram/CSymbolTable.java
deleted file mode 100644
index 51edf44c3..000000000
--- a/src/classes/com/sun/gluegen/cgram/CSymbolTable.java
+++ /dev/null
@@ -1,132 +0,0 @@
-package com.sun.gluegen.cgram;
-
-import java.util.Vector;
-import java.util.Hashtable;
-import java.util.Enumeration;
-
-
-
-public class CSymbolTable {
-
- /** holds list of scopes */
- private Vector scopeStack;
-
- /** table where all defined names are mapped to TNode tree nodes */
- private Hashtable symTable;
-
- public CSymbolTable() {
- scopeStack = new Vector(10);
- symTable = new Hashtable(533);
- }
-
-
- /** push a new scope onto the scope stack.
- */
- public void pushScope(String s) {
- //System.out.println("push scope:" + s);
- scopeStack.addElement(s);
- }
-
- /** pop the last scope off the scope stack.
- */
- public void popScope() {
- //System.out.println("pop scope");
- int size = scopeStack.size();
- if(size > 0)
- scopeStack.removeElementAt(size - 1);
- }
-
- /** return the current scope as a string
- */
- public String currentScopeAsString() {
- StringBuffer buf = new StringBuffer(100);
- boolean first = true;
- Enumeration e = scopeStack.elements();
- while(e.hasMoreElements()) {
- if(first)
- first = false;
- else
- buf.append("::");
- buf.append(e.nextElement().toString());
- }
- return buf.toString();
- }
-
- /** given a name for a type, append it with the
- current scope.
- */
- public String addCurrentScopeToName(String name) {
- String currScope = currentScopeAsString();
- return addScopeToName(currScope, name);
- }
-
- /** given a name for a type, append it with the
- given scope. MBZ
- */
- public String addScopeToName(String scope, String name) {
- if(scope == null || scope.length() > 0)
- return scope + "::" + name;
- else
- return name;
- }
-
- /** remove one level of scope from name MBZ*/
- public String removeOneLevelScope(String scopeName) {
- int index = scopeName.lastIndexOf("::");
- if (index > 0) {
- return scopeName.substring(0,index);
- }
- if (scopeName.length() > 0) {
- return "";
- }
- return null;
- }
-
- /** add a node to the table with it's key as
- the current scope and the name */
- public TNode add(String name, TNode node) {
- return (TNode)symTable.put(addCurrentScopeToName(name),node);
- }
-
-
- /** lookup a fully scoped name in the symbol table */
- public TNode lookupScopedName(String scopedName) {
- return (TNode)symTable.get(scopedName);
- }
-
- /** lookup an unscoped name in the table by prepending
- the current scope.
- MBZ -- if not found, pop scopes and look again
- */
- public TNode lookupNameInCurrentScope(String name) {
- String scope = currentScopeAsString();
- String scopedName;
- TNode tnode = null;
-
- //System.out.println( "\n"+ this.toString() );
-
- while (tnode == null && scope != null) {
- scopedName = addScopeToName(scope, name);
- //System.out.println("lookup trying " + scopedName);
- tnode = (TNode)symTable.get(scopedName);
- scope = removeOneLevelScope(scope);
- }
- return tnode;
- }
-
- /** convert this table to a string */
- public String toString() {
- StringBuffer buff = new StringBuffer(300);
- buff.append("CSymbolTable { \nCurrentScope: " + currentScopeAsString() +
- "\nDefinedSymbols:\n");
- Enumeration ke = symTable.keys();
- Enumeration ve = symTable.elements();
- while(ke.hasMoreElements()) {
- buff.append(ke.nextElement().toString() + " (" +
- TNode.getNameForType(((TNode)ve.nextElement()).getType()) + ")\n");
- }
- buff.append("}\n");
- return buff.toString();
- }
-
-};