kawa.lang

Class Quote

public class Quote extends Syntax

The Syntax transformer that re-writes the "quote" "quasiquote" primitive. In both cases recursively resolves SyntaxForm wrappers and resolves namespaces of symbols. In the case of quasiquote also handles unquoting.
Field Summary
protected booleanisQuasi
True for quasiquote; false for plain quote.
static QuoteplainQuote
static QuotequasiQuote
protected static intQUOTE_DEPTH
An initial value for 'depth' for plain (non-quasi) quote.
Constructor Summary
Quote(String name, boolean isQuasi)
Method Summary
static Objectappend$V(Object[] args)
Same as regular append, but handle SyntaxForm wrappers.
protected ExpressioncoerceExpression(Object val, Translator tr)
static ObjectconsX$V(Object[] args)
A wrapper around LList.consX to make it a "variable-arg method".
protected Objectexpand(Object template, int depth, Translator tr)
protected booleanexpandColonForms()
protected Expressionleaf(Object val, Translator tr)
static Objectquote(Object obj, Translator tr)
Quote an object (without namespace-expansion).
static Objectquote(Object obj)
Quote an object (without namespace-expansion).
Expressionrewrite(Object obj, Translator tr)

Field Detail

isQuasi

protected boolean isQuasi
True for quasiquote; false for plain quote.

plainQuote

public static final Quote plainQuote

quasiQuote

public static final Quote quasiQuote

QUOTE_DEPTH

protected static final int QUOTE_DEPTH
An initial value for 'depth' for plain (non-quasi) quote.

Constructor Detail

Quote

public Quote(String name, boolean isQuasi)

Method Detail

append$V

public static Object append$V(Object[] args)
Same as regular append, but handle SyntaxForm wrappers.

coerceExpression

protected Expression coerceExpression(Object val, Translator tr)

consX$V

public static Object consX$V(Object[] args)
A wrapper around LList.consX to make it a "variable-arg method".

expand

protected Object expand(Object template, int depth, Translator tr)

expandColonForms

protected boolean expandColonForms()

leaf

protected Expression leaf(Object val, Translator tr)

quote

public static Object quote(Object obj, Translator tr)
Quote an object (without namespace-expansion). Basically just recursively removes SyntaxForm wrappers.

quote

public static Object quote(Object obj)
Quote an object (without namespace-expansion). Basically just recursively removes SyntaxForm wrappers.

rewrite

public Expression rewrite(Object obj, Translator tr)