Package kawa.lang
Class Quote
- java.lang.Object
-
- kawa.lang.Syntax
-
- kawa.lang.Quote
-
- All Implemented Interfaces:
gnu.kawa.format.Printable
,Named
- Direct Known Subclasses:
syntax
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
Fields Modifier and Type Field Description protected boolean
isQuasi
True for quasiquote; false for plain quote.static Quote
plainQuote
static Quote
quasiQuote
protected static int
QUOTE_DEPTH
An initial value for 'depth' for plain (non-quasi) quote.
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description static Object
append$V(Object[] args)
Same as regular append, but handle SyntaxForm wrappers.protected Expression
coerceExpression(Object val, Translator tr)
static Object
consX$V(Object[] args)
A wrapper around LList.consX to make it a "variable-arg method".protected Object
expand(Object template, int depth, Translator tr)
protected boolean
expandColonForms()
protected Expression
leaf(Object val, Translator tr)
static Symbol
makeSymbol(Namespace ns, Object local)
protected boolean
matchesQuasiQuote(Object form, SyntaxForm syntax, Translator tr)
protected boolean
matchesUnquote(Pair pair, SyntaxForm syntax, Translator tr)
protected boolean
matchesUnquoteSplicing(Pair pair, SyntaxForm syntax, Translator tr)
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)
Re-write an expression that is an "application" of this Syntax object.-
Methods inherited from class kawa.lang.Syntax
getName, getSymbol, print, rewriteForm, scanForDefinitions, scanForm, setName, setName
-
-
-
-
Field Detail
-
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.- See Also:
- Constant Field Values
-
isQuasi
protected boolean isQuasi
True for quasiquote; false for plain quote.
-
-
Constructor Detail
-
Quote
public Quote(String name, boolean isQuasi)
-
-
Method Detail
-
matchesUnquote
protected boolean matchesUnquote(Pair pair, SyntaxForm syntax, Translator tr)
-
matchesUnquoteSplicing
protected boolean matchesUnquoteSplicing(Pair pair, SyntaxForm syntax, Translator tr)
-
matchesQuasiQuote
protected boolean matchesQuasiQuote(Object form, SyntaxForm syntax, Translator tr)
-
expand
protected Object expand(Object template, int depth, 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.
-
coerceExpression
protected Expression coerceExpression(Object val, Translator tr)
-
leaf
protected Expression leaf(Object val, Translator tr)
-
expandColonForms
protected boolean expandColonForms()
-
rewrite
public Expression rewrite(Object obj, Translator tr)
Description copied from class:Syntax
Re-write an expression that is an "application" of this Syntax object.
-
consX$V
public static Object consX$V(Object[] args)
A wrapper around LList.consX to make it a "variable-arg method".
-
-