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 classSyntaxForms.PairSyntaxFormstatic classSyntaxForms.PairWithPositionSyntaxFormstatic classSyntaxForms.SimpleSyntaxForm
-
Field Summary
Fields Modifier and Type Field Description static booleanDEBUGGING
-
Constructor Summary
Constructors Constructor Description SyntaxForms()
-
Method Summary
All Methods Static Methods Concrete Methods Modifier and Type Method Description static ObjectfromDatum(Object datum, SyntaxForm template)Make a SyntaxForm object with the same contextual information as this.static ObjectfromDatumIfNeeded(Object datum, SyntaxForm template)static booleanidentifierEquals(Object id1, Object id2, boolean checkBound)Utility method to implement Scheme free-identifier=? and bound-identifier=?.static booleanisIdentifier(SyntaxForm form)static ObjectmakeForm(Object datum, TemplateScope scope)static ObjectmakeWithTemplate(Object template, Object form)static ObjectmakeWithTemplate(Object template, Object datum, Object srcloc)Create a syntax object with specified datum, and given syntatic context.static Expressionrewrite(Object x)static ExpressionrewriteBody(Object x)static ExpressionrewriteCar(Object x)static StringtoString(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-objectfunction.
-
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)
-
-