Ejemplo n.º 1
0
def analyzeQuoted(exp):
    text = expressions.textOfQuotation(exp)
    ## the common case is to handle simple quotation.
    if not expressions.isQuasiquoted(exp):  
        return (lambda env, cont:
                pogo.bounce(cont, text))
    else:
        return analyze(expressions.expandQuasiquotation(text))
Ejemplo n.º 2
0
def evalQuoted(exp, env, cont):
    """Returns a quoted expression, using deepQuotedEval to look for
    UNQUOTE.

    Consequently, quoted elements are properly turned into cons pairs.
    """
    text = expressions.textOfQuotation(exp)
    if expressions.isQuasiquoted(exp):
        expandedExp = expressions.expandQuasiquotation(text)
        return pogo.bounce(teval, expandedExp, env, cont)
    else:
        return pogo.bounce(cont, text)
Ejemplo n.º 3
0
def evalQuoted(exp, env, cont):
    """Returns a quoted expression, using deepQuotedEval to look for
    UNQUOTE.

    Consequently, quoted elements are properly turned into cons pairs.
    """
    text = expressions.textOfQuotation(exp)
    if expressions.isQuasiquoted(exp):
        expandedExp = expressions.expandQuasiquotation(text)
        return pogo.bounce(teval,
                               expandedExp,
                               env,
                               cont)
    else:
        return pogo.bounce(cont, text)
Ejemplo n.º 4
0
 def t_expand_quote(self, expr, cont):
     if expressions.isQuasiquoted(expr):
         expandedExp = expressions.expandQuasiquotation(text)
         return pogo.bounce(self.t_expand, expandedExp, cont)
     else:
         return pogo.bounce(cont, expr)