Package kawa.lang
Class SyntaxForms
- java.lang.Object
-
- kawa.lang.SyntaxForms
-
public class SyntaxForms extends Object
Helper method and implementation classes for SyntaxForm.
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static class
SyntaxForms.PairSyntaxForm
static class
SyntaxForms.PairWithPositionSyntaxForm
static class
SyntaxForms.SimpleSyntaxForm
-
Field Summary
Fields Modifier and Type Field Description static boolean
DEBUGGING
-
Constructor Summary
Constructors Constructor Description SyntaxForms()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static Object
fromDatum(Object datum, SyntaxForm template)
Make a SyntaxForm object with the same contextual information as this.static Object
fromDatumIfNeeded(Object datum, SyntaxForm template)
static boolean
identifierEquals(Object id1, Object id2, boolean checkBound)
Utility method to implement Scheme free-identifier=? and bound-identifier=?.static boolean
isIdentifier(SyntaxForm form)
static Object
makeForm(Object datum, TemplateScope scope)
static Object
makeWithTemplate(Object template, Object form)
static Object
makeWithTemplate(Object template, Object datum, Object srcloc)
Create a syntax object with specified datum, and given syntatic context.static Expression
rewrite(Object x)
static Expression
rewriteBody(Object x)
static Expression
rewriteCar(Object x)
static String
toString(SyntaxForm sform, String id)
-
-
-
Field Detail
-
DEBUGGING
public static final boolean DEBUGGING
- See Also:
- Constant Field Values
-
-
Method Detail
-
makeForm
public static Object makeForm(Object datum, TemplateScope scope)
-
makeWithTemplate
public static Object makeWithTemplate(Object template, Object datum, Object srcloc)
Create a syntax object with specified datum, and given syntatic context. Used to implementdatum->syntax
.- Parameters:
template
- If this is aSyntaxForm
, use its scope; otherwise use the currentCompilation
's current scope. (This means just returning the datum as-is.)datum
- The value (S-expression datum) to use.srcloc
- Used to set source location (line number etc). Ignored if null; otherwise should be aSourceLocator
.
-
identifierEquals
public static boolean identifierEquals(Object id1, Object id2, boolean checkBound)
Utility method to implement Scheme free-identifier=? and bound-identifier=?.- Parameters:
id1
- An identifier - either a symbol or a SyntaxForm whose form is a symbol. We assume it satisfies the Scheme predicate identifier?.id2
- The other identifier to compare against.checkBound
- true for bound-identifier=? and false for free-identifier=?.
-
isIdentifier
public static boolean isIdentifier(SyntaxForm form)
-
fromDatum
public static Object fromDatum(Object datum, SyntaxForm template)
Make a SyntaxForm object with the same contextual information as this.- Parameters:
datum
- which used for the new syntax value. Corresponds to thedatum->syntax-object
function.
-
fromDatumIfNeeded
public static Object fromDatumIfNeeded(Object datum, SyntaxForm template)
-
rewrite
public static Expression rewrite(Object x)
-
rewriteCar
public static Expression rewriteCar(Object x)
-
rewriteBody
public static Expression rewriteBody(Object x)
-
toString
public static String toString(SyntaxForm sform, String id)
-
-