示例#1
0
    def tvisit(self,visitor,args=None,paren=[],bindings=None,expect=None,ctxt=None):
        frags = []
        self_eval = 0
        for arg in args:
            dummy, frag = recast(arg.fragment,[],('Identifier',))
            if isinstance(frag,jast.Identifier):
                frag = frag.IDENTIFIER.value               
            elif isinstance(frag,jast.IdentifierPlaceholder):
                frag = texpand(frag,arg.bindings)
                if not frag:
                    continue
                if frag[0] == "`": # !!!
                    self_eval = 1
            else:
                raise Exception("can't concat into an identifier: %s" % arg)
            
            frags.append(frag)

        if not self_eval:
            frag = ''.join(frags)
            frag = make_id(frag)
        else:
            frag = "`concat`(%s)" % ','.join(frags)

        return JavaTemplate(frag).tvisit(visitor,paren=paren,expect=expect,ctxt=ctxt)
示例#2
0
    def tvisit(self,
               visitor,
               args=None,
               paren=[],
               bindings=None,
               expect=None,
               ctxt=None):
        frags = []
        self_eval = 0
        for arg in args:
            dummy, frag = recast(arg.fragment, [], ('Identifier', ))
            if isinstance(frag, jast.Identifier):
                frag = frag.IDENTIFIER.value
            elif isinstance(frag, jast.IdentifierPlaceholder):
                frag = texpand(frag, arg.bindings)
                if not frag:
                    continue
                if frag[0] == "`":  # !!!
                    self_eval = 1
            else:
                raise Exception("can't concat into an identifier: %s" % arg)

            frags.append(frag)

        if not self_eval:
            frag = ''.join(frags)
            frag = make_id(frag)
        else:
            frag = "`concat`(%s)" % ','.join(frags)

        return JavaTemplate(frag).tvisit(visitor,
                                         paren=paren,
                                         expect=expect,
                                         ctxt=ctxt)
示例#3
0
def make_name(n):
    return JavaTemplate(jast_make(jast.QualifiedIdentifier,[java_parser.make_id(n)]))
示例#4
0
def make_name(n):
    return JavaTemplate(
        jast_make(jast.QualifiedIdentifier, [java_parser.make_id(n)]))
示例#5
0
def recast___Identifier(frag,paren):
    return make_id("")
示例#6
0
def recast___Identifier(frag, paren):
    return make_id("")