gnu.expr
Interface Compilable

All Known Implementing Classes:
AnyPat, EqualPat, Keyword, ListRepeatPat, Macro, PairPat, Special, SyntaxRule, SyntaxRules, DFloNum, IntNum

public interface Compilable

An interface of values that are compilable as Literals.


Method Summary
 void emit(Literal literal, Compilation comp)
          Emit code (in comp.method) to initialize a Literal for this value.
 Literal makeLiteral(Compilation comp)
          Generates a (new) Literal for this for a given Compilation.
 

Method Detail

makeLiteral

public Literal makeLiteral(Compilation comp)
Generates a (new) Literal for this for a given Compilation. If this has sub-objects, calls Compilation.findLiteral on its components.

emit

public void emit(Literal literal,
                 Compilation comp)
Emit code (in comp.method) to initialize a Literal for this value. Generates code to make the Literal at least ALLOACTED. Also makes it INITIALIZED, unless ALLOCATING is set (in which one of our callers will make it INITIALIZED). Never called if already ALLOCATED.