def lookup_parameter(code, decl_type = None):
     lucene_query = 'type:Parameter'
     traversal = 'ithChildren(\'1\').filter{{it.code == \'{}\'}}'.format(code)
     if decl_type:
         traversal += '.as(\'identifier\').identifierToType().filter{{it.code == \'{}\'}}.back(\'identifier\')'.format(decl_type)
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x : Identifier(x[0], x[1].get_properties()), result)
示例#2
0
 def lookup_functions_by_variable(code, decl_type = None):
     lucene_query = 'type:IdentifierDecl'
     traversal = 'ithChildren(\'1\').filter{{it.code == \'{}\'}}'.format(code)
     if decl_type:
         traversal += '.identifierToType().filter{{it.code == \'{}\'}}'.format(decl_type)
     traversal += '.functions().dedup()'
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x : Function(x[0], x[1]), result)
 def lookup_functions_by_variable(code, decl_type=None):
     lucene_query = 'type:IdentifierDecl'
     traversal = 'ithChildren(\'1\').filter{{it.code == \'{}\'}}'.format(
         code)
     if decl_type:
         traversal += '.identifierToType().filter{{it.code == \'{}\'}}'.format(
             decl_type)
     traversal += '.functions().dedup()'
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x: Function(x[0], x[1]), result)
示例#4
0
 def callers(self):
     """ All Caller of this function """
     lucene_query = 'type:Callee AND code:"{}"'.format(self.get_property('name'))
     traversal = 'transform{ g.v(it.functionId) }'
     callers = set()
     results = jutils.lookup(lucene_query, traversal = traversal)
     if results:
         for node_id, node in results:
             callers.add(Function(node_id, node))
     return list(callers) 
示例#5
0
 def symbolsByName(self, code):
     lucene_query = 'type:Symbol AND functionId:"{}" AND code:"{}"'
     lucene_query = lucene_query.format(self.node_id, code)
     result = jutils.lookup(lucene_query)
     return Symbol(result[0][0], result[0][1].get_properties())
示例#6
0
 def variables(self):
     lucene_query = 'functionId:"{}" AND type:Identifier'.format(self.node_id)
     traversal = 'filterVariables()'
     symbols = jutils.lookup(lucene_query, traversal = traversal)
     return map(lambda x : Identifier(x[0], x[1].get_properties()), symbols)
示例#7
0
 def callees(self):
     lucene_query = 'functionId:"{}" AND type:Callee'.format(self.node_id)
     result = jutils.lookup(lucene_query)
     return map(lambda x : Callee(x[0], x[1].get_properties()), result)
示例#8
0
 def symbols(self):
     lucene_query = 'functionId:"{}" AND type:Symbol'.format(self.node_id)
     symbols = jutils.lookup(lucene_query)
     return map(lambda x : Symbol(x[0], x[1].get_properties()), symbols)
示例#9
0
 def calleesByName(self, code):
     lucene_query = 'type:Callee AND functionId:"{}" AND code:"{}"'
     lucene_query = lucene_query.format(self.node_id, code)
     result = jutils.lookup(lucene_query)
     return map(lambda x: Callee(x[0], x[1].get_properties()), result)
示例#10
0
 def calleesByName(code):
     lucene_query = 'type:Callee AND code:"{}"'.format(code)
     symbols = jutils.lookup(lucene_query)
     return map(lambda x : Callee(x[0], x[1].get_properties()), symbols)
示例#11
0
 def lookup_functions_by_symbol(code):
     lucene_query = 'type:Symbol AND code:"{}"'.format(code)
     traversal = 'functions().dedup()'
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x : Function(x[0], x[1]), result)
示例#12
0
 def lookup_functions_by_symbol(code):
     lucene_query = 'type:Symbol AND code:"{}"'.format(code)
     traversal = 'functions().dedup()'
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x: Function(x[0], x[1]), result)
示例#13
0
 def symbols(self):
     lucene_query = 'functionId:"{}" AND type:Symbol'.format(self.node_id)
     symbols = jutils.lookup(lucene_query)
     return map(lambda x: Symbol(x[0], x[1].get_properties()), symbols)
示例#14
0
 def lookup_symbols_by_name(code):
     lucene_query = 'type:Symbol AND code:"{}"'.format(code)
     symbols = jutils.lookup(lucene_query)
     return map(lambda x : Symbol(x[0], x[1].get_properties()), symbols)
示例#15
0
 def lookup_functions_by_name(name):
     lucene_query = 'type:Function AND name:"{}"'.format(name)
     result = jutils.lookup(lucene_query)
     return map(lambda x : Function(x[0], x[1]), result)
示例#16
0
 def lookup_all_functions():
     lucene_query = 'type:Function'
     traversal = ''
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x : Function(x[0], x[1]), result)
示例#17
0
 def calleesByName(self, code):
     lucene_query = 'type:Callee AND functionId:"{}" AND code:"{}"'
     lucene_query = lucene_query.format(self.node_id, code)
     result = jutils.lookup(lucene_query)
     return map(lambda x : Callee(x[0], x[1].get_properties()), result)
示例#18
0
 def lookup_functions_by_name(name):
     lucene_query = 'type:Function AND name:"{}"'.format(name)
     result = jutils.lookup(lucene_query)
     return map(lambda x: Function(x[0], x[1]), result)
示例#19
0
 def callees(self):
     lucene_query = 'functionId:"{}" AND type:Callee'.format(self.node_id)
     result = jutils.lookup(lucene_query)
     return map(lambda x: Callee(x[0], x[1].get_properties()), result)
示例#20
0
 def calleesByName(code):
     lucene_query = 'type:Callee AND code:"{}"'.format(code)
     symbols = jutils.lookup(lucene_query)
     return map(lambda x: Callee(x[0], x[1].get_properties()), symbols)
示例#21
0
 def lookup_all_functions():
     lucene_query = 'type:Function'
     traversal = ''
     result = jutils.lookup(lucene_query, traversal)
     return map(lambda x: Function(x[0], x[1]), result)
示例#22
0
 def variables(self):
     lucene_query = 'functionId:"{}" AND type:Identifier'.format(
         self.node_id)
     traversal = 'filterVariables()'
     symbols = jutils.lookup(lucene_query, traversal=traversal)
     return map(lambda x: Identifier(x[0], x[1].get_properties()), symbols)
示例#23
0
 def symbolsByName(self, code):
     lucene_query = 'type:Symbol AND functionId:"{}" AND code:"{}"'
     lucene_query = lucene_query.format(self.node_id, code)
     result = jutils.lookup(lucene_query)
     return Symbol(result[0][0], result[0][1].get_properties())
示例#24
0
 def lookup_symbols_by_name(code):
     lucene_query = 'type:Symbol AND code:"{}"'.format(code)
     symbols = jutils.lookup(lucene_query)
     return map(lambda x: Symbol(x[0], x[1].get_properties()), symbols)