forked from OSchip/llvm-project
cindex/Python: Fix cindex-{dump,includes} examples to just pass all args
directly to Index, instead of requiring the input file to be first. This makes the examples behave more like 'clang'. For example, ddunbar@giles:tmp$ echo '#include <string>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c++ - | wc -l 114 ddunbar@giles:tmp$ echo '#include <stdio.h>' | python ~/llvm/tools/clang/bindings/python/examples/cindex/cindex-includes.py -- -x c - | wc -l 10 llvm-svn: 96107
This commit is contained in:
parent
43813bf023
commit
ae4b77d99d
|
@ -74,10 +74,8 @@ def main():
|
||||||
if len(args) == 0:
|
if len(args) == 0:
|
||||||
parser.error('invalid number arguments')
|
parser.error('invalid number arguments')
|
||||||
|
|
||||||
input_path = args.pop(0)
|
|
||||||
|
|
||||||
index = Index.create()
|
index = Index.create()
|
||||||
tu = index.parse(input_path, args)
|
tu = index.parse(None, args)
|
||||||
if not tu:
|
if not tu:
|
||||||
parser.error("unable to load input")
|
parser.error("unable to load input")
|
||||||
|
|
||||||
|
|
|
@ -18,8 +18,6 @@ def main():
|
||||||
import sys
|
import sys
|
||||||
from clang.cindex import Index
|
from clang.cindex import Index
|
||||||
|
|
||||||
# FIXME: Allow the user to pass command line options to clang so that
|
|
||||||
# we can use -D and -U.
|
|
||||||
from optparse import OptionParser, OptionGroup
|
from optparse import OptionParser, OptionGroup
|
||||||
|
|
||||||
parser = OptionParser("usage: %prog [options] {filename} [clang-args*]")
|
parser = OptionParser("usage: %prog [options] {filename} [clang-args*]")
|
||||||
|
@ -31,17 +29,15 @@ def main():
|
||||||
# FIXME: Add an output file option
|
# FIXME: Add an output file option
|
||||||
out = sys.stdout
|
out = sys.stdout
|
||||||
|
|
||||||
input_path = args.pop(0)
|
|
||||||
|
|
||||||
|
|
||||||
index = Index.create()
|
index = Index.create()
|
||||||
tu = index.parse(input_path, args)
|
tu = index.parse(None, args)
|
||||||
if not tu:
|
if not tu:
|
||||||
parser.error("unable to load input")
|
parser.error("unable to load input")
|
||||||
|
|
||||||
# A helper function for generating the node name.
|
# A helper function for generating the node name.
|
||||||
def name(f):
|
def name(f):
|
||||||
return "\"" + f.name + "\""
|
if f:
|
||||||
|
return "\"" + f.name + "\""
|
||||||
|
|
||||||
# Generate the include graph
|
# Generate the include graph
|
||||||
out.write("digraph G {\n")
|
out.write("digraph G {\n")
|
||||||
|
@ -52,7 +48,7 @@ def main():
|
||||||
# actually include anything. This would generate a 1 node graph.
|
# actually include anything. This would generate a 1 node graph.
|
||||||
line += name(i.include)
|
line += name(i.include)
|
||||||
else:
|
else:
|
||||||
line += name(i.source) + "->" + name(i.include)
|
line += '%s->%s' % (name(i.source), name(i.include))
|
||||||
line += "\n";
|
line += "\n";
|
||||||
out.write(line)
|
out.write(line)
|
||||||
out.write("}\n")
|
out.write("}\n")
|
||||||
|
|
Loading…
Reference in New Issue