kawa.lang

Class Quote

Implemented Interfaces:
Named, Printable

public class Quote
extends Syntax
implements Printable

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

static Quote
plainQuote
static Quote
quasiQuote

Constructor Summary

Quote(String name, boolean isQuasi)

Method Summary

static Object
quote(Object obj)
Quote an object (without namespace-expansion).
static Object
quote(Object obj, Translator tr)
Quote an object (without namespace-expansion).
Expression
rewrite(Object obj, Translator tr)

Methods inherited from class kawa.lang.Syntax

getName, getSymbol, print, rewrite, rewriteForm, rewriteForm, scanForDefinitions, scanForm, setName, setName

Field Details

plainQuote

public static final Quote plainQuote

quasiQuote

public static final Quote quasiQuote

Constructor Details

Quote

public Quote(String name,
             boolean isQuasi)

Method Details

quote

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

quote

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

rewrite

public Expression rewrite(Object obj,
                          Translator tr)
Overrides:
rewrite in interface Syntax