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

Quick Search    Search Deep

silk
Class Symbol  view Symbol download Symbol.java

java.lang.Object
  extended bysilk.Symbol
All Implemented Interfaces:
java.io.Serializable

public class Symbol
extends java.lang.Object
implements java.io.Serializable

In Silk 1.0 to 1.4, symbols were implemented as Strings. In 1.5, we add a Symbol class, with a field for the global value. This makes global lookup faster, but limits us to only one global environment.


Field Summary
static Symbol BEGIN
           
static Symbol CAR
           
static Symbol CDR
           
static Symbol DEFINE
           
private  java.lang.Object globalValue
          Global value is stored with each symbol.
static Symbol IF
           
static Symbol LAMBDA
           
static Symbol MACRO
           
private  java.lang.String name
           
static Symbol NEWLINE
           
static Symbol NULL
           
static Symbol OR
           
static Symbol PACKAGE
           
static Symbol QUASIQUOTE
           
static Symbol QUOTE
           
static Symbol SET
           
static Symbol SPACE
           
static java.util.Hashtable symbolTable
          The symbolTable keeps a unique mapping from String name to Symbol.
static Symbol UNQUOTE
           
static Symbol UNQUOTE_SPLICING
           
 
Constructor Summary
private Symbol(java.lang.String name)
          Constructor.
 
Method Summary
 java.lang.Object getGlobalValue()
           
static Symbol intern(java.lang.String name)
          Intern a string: look up or make a symbol.
 boolean isDefined()
           
 java.lang.Object setGlobalValue(java.lang.Object newval)
           
 java.lang.String toString()
          A symbol can be printed using its name.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait
 

Field Detail

name

private java.lang.String name

globalValue

private java.lang.Object globalValue
Global value is stored with each symbol.


symbolTable

public static final java.util.Hashtable symbolTable
The symbolTable keeps a unique mapping from String name to Symbol.


BEGIN

public static final Symbol BEGIN

CAR

public static final Symbol CAR

CDR

public static final Symbol CDR

DEFINE

public static final Symbol DEFINE

IF

public static final Symbol IF

LAMBDA

public static final Symbol LAMBDA

MACRO

public static final Symbol MACRO

NEWLINE

public static final Symbol NEWLINE

NULL

public static final Symbol NULL

OR

public static final Symbol OR

QUASIQUOTE

public static final Symbol QUASIQUOTE

QUOTE

public static final Symbol QUOTE

SET

public static final Symbol SET

SPACE

public static final Symbol SPACE

UNQUOTE

public static final Symbol UNQUOTE

UNQUOTE_SPLICING

public static final Symbol UNQUOTE_SPLICING

PACKAGE

public static final Symbol PACKAGE
Constructor Detail

Symbol

private Symbol(java.lang.String name)
Constructor. From outside the class, call Symbol.intern(name).

Method Detail

intern

public static Symbol intern(java.lang.String name)
Intern a string: look up or make a symbol.


getGlobalValue

public java.lang.Object getGlobalValue()

isDefined

public boolean isDefined()

setGlobalValue

public java.lang.Object setGlobalValue(java.lang.Object newval)

toString

public java.lang.String toString()
A symbol can be printed using its name. We don't do escape processing.