Package kawa.lang

Class Lambda

  • All Implemented Interfaces:
    gnu.kawa.format.Printable, Named

    public class Lambda
    extends Syntax
    The Syntax transformer that re-writes the lambda builtin.
    • Field Detail

      • optionalKeyword

        public java.lang.Object optionalKeyword
      • restKeyword

        public java.lang.Object restKeyword
      • keyKeyword

        public java.lang.Object keyKeyword
      • nameKeyword

        public static final Keyword nameKeyword
      • defaultDefault

        public Expression defaultDefault
    • Constructor Detail

      • Lambda

        public Lambda()
    • Method Detail

      • setKeywords

        public void setKeywords​(java.lang.Object optional,
                                java.lang.Object rest,
                                java.lang.Object key)
      • rewrite

        public Expression rewrite​(java.lang.Object obj,
                                  Translator tr)
        Description copied from class: Syntax
        Re-write an expression that is an "application" of this Syntax object.
        Overrides:
        rewrite in class Syntax
        Parameters:
        obj - the arguments to this "application" (i.e. the cdr of the macro/builtin invocation)
        tr - the Translator that provides context
        Returns:
        the re-written expression
      • rewrite

        public void rewrite​(LambdaExp lexp,
                            java.lang.Object formals,
                            java.lang.Object body,
                            Translator tr,
                            TemplateScope templateScopeRest)
        Higher-level constructor, that does the re-writing.
        Parameters:
        formals - the formal parameter list (or symbol)
        body - the body of the procedure
        tr - the (Scheme) Translator
      • rewriteAttrs

        public java.lang.Object rewriteAttrs​(LambdaExp lexp,
                                             java.lang.Object body,
                                             Translator tr)
      • skipAttrs

        public java.lang.Object skipAttrs​(LambdaExp lexp,
                                          java.lang.Object body,
                                          Translator tr)
      • rewriteBody

        public void rewriteBody​(LambdaExp lexp,
                                java.lang.Object body,
                                Translator tr)
      • print

        public void print​(Consumer out)
        Specified by:
        print in interface gnu.kawa.format.Printable
        Overrides:
        print in class Syntax
      • isAnnotationSymbol

        public static boolean isAnnotationSymbol​(java.lang.Object key)