|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||
java.lang.Object | +--kawa.lang.Translator
Used to translate from source to Expression. The result has macros expanded, lexical names bound, etc, and is ready for code generation. This is sometimes called a "compilation environment", but we modify it as we go along - there is a single Translator for each top-level form.
| Field Summary | |
Environment |
environ
|
ModuleExp |
module
|
| Constructor Summary | |
Translator()
|
|
Translator(Environment env)
|
|
Translator(Environment env,
SourceMessages messages)
|
|
| Method Summary | |
void |
addGlobal(java.lang.String name,
java.lang.Object value)
Enter a global definition. |
Syntax |
check_if_Syntax(java.lang.Object obj)
Check if Object is Syntax, or bound to Syntax. |
LambdaExp |
currentLambda()
|
ScopeExp |
currentScope()
|
void |
error(char severity,
java.lang.String message)
|
void |
finishModule(ModuleExp mexp,
java.util.Vector forms)
|
Syntax |
getCurrentSyntax()
|
Environment |
getGlobalEnvironment()
|
SourceMessages |
getMessages()
|
boolean |
isLexical(Declaration decl)
Return true if decl is lexical and not fluid. |
static gnu.kawa.util.Pair |
makePair(gnu.kawa.util.Pair pair,
java.lang.Object car,
java.lang.Object cdr)
|
void |
mustCompileHere()
Note that we have seen a construct that must be compiled, not evaluated. |
void |
pop(ScopeExp scope)
|
boolean |
popBinding()
|
void |
popDecls(ScopeExp scope)
|
void |
push(Declaration decl)
Insert decl into environ. |
void |
push(ScopeExp scope)
|
void |
pushBinding(java.lang.String name,
java.lang.Object value)
Note a new binding, remembering old binding in the shadowStack. |
void |
pushDecls(ScopeExp scope)
|
Expression |
rewrite_body(java.lang.Object exp)
Re-write a Scheme in S-expression format into internal form. |
Expression |
rewrite_body(java.util.Vector forms,
LetExp defs)
|
Expression |
rewrite_pair(gnu.kawa.util.Pair p)
|
Expression |
rewrite_with_position(java.lang.Object exp,
gnu.kawa.util.PairWithPosition pair)
|
Expression |
rewrite(java.lang.Object exp)
Re-write a Scheme expression in S-expression format into internal form. |
boolean |
scan_body(java.lang.Object body,
java.util.Vector forms,
ScopeExp defs)
Recursive helper method for rewrite_body. |
void |
setMessages(SourceMessages messages)
|
Expression |
syntaxError(java.lang.String message)
Handle syntax errors (at rewrite time). |
| Methods inherited from class java.lang.Object |
clone,
equals,
finalize,
getClass,
hashCode,
notify,
notifyAll,
toString,
wait,
wait,
wait |
| Field Detail |
public Environment environ
public ModuleExp module
| Constructor Detail |
public Translator(Environment env,
SourceMessages messages)
public Translator(Environment env)
public Translator()
| Method Detail |
public LambdaExp currentLambda()
public ScopeExp currentScope()
public boolean isLexical(Declaration decl)
public final Environment getGlobalEnvironment()
public Syntax getCurrentSyntax()
public SourceMessages getMessages()
public void setMessages(SourceMessages messages)
public void error(char severity,
java.lang.String message)
public Expression syntaxError(java.lang.String message)
message - an error message to print out
public void addGlobal(java.lang.String name,
java.lang.Object value)
public void mustCompileHere()
public Syntax check_if_Syntax(java.lang.Object obj)
obj - the value to checkpublic Expression rewrite_pair(gnu.kawa.util.Pair p)
public Expression rewrite(java.lang.Object exp)
public Expression rewrite_with_position(java.lang.Object exp,
gnu.kawa.util.PairWithPosition pair)
public boolean scan_body(java.lang.Object body,
java.util.Vector forms,
ScopeExp defs)
public static gnu.kawa.util.Pair makePair(gnu.kawa.util.Pair pair,
java.lang.Object car,
java.lang.Object cdr)
public Expression rewrite_body(java.lang.Object exp)
public Expression rewrite_body(java.util.Vector forms,
LetExp defs)
public void finishModule(ModuleExp mexp,
java.util.Vector forms)
public void pushBinding(java.lang.String name,
java.lang.Object value)
public boolean popBinding()
public void push(Declaration decl)
public final void pushDecls(ScopeExp scope)
public final void popDecls(ScopeExp scope)
public void push(ScopeExp scope)
public void pop(ScopeExp scope)
|
|||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | ||||||||
| SUMMARY: INNER | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | ||||||||