mirror of
https://github.com/Z3Prover/z3
synced 2025-06-06 06:03:23 +00:00
checkpoint
Signed-off-by: Leonardo de Moura <leonardo@microsoft.com>
This commit is contained in:
parent
c4898a67e3
commit
236a32c3d4
10 changed files with 256 additions and 965 deletions
|
@ -9,7 +9,7 @@
|
|||
import os
|
||||
import glob
|
||||
import sets
|
||||
from dependencies import *
|
||||
import re
|
||||
from mk_exception import *
|
||||
|
||||
BUILD_DIR='build'
|
||||
|
@ -27,6 +27,28 @@ SHOW_CPPS = True
|
|||
LIB_KIND = 0
|
||||
EXE_KIND = 1
|
||||
|
||||
# Return a list containing a file names included using '#include' in
|
||||
# the given C/C++ file named fname.
|
||||
def extract_c_includes(fname):
|
||||
result = []
|
||||
# We look for well behaved #include directives
|
||||
std_inc_pat = re.compile("[ \t]*#include[ \t]*\"(.*)\"[ \t]*")
|
||||
system_inc_pat = re.compile("[ \t]*#include[ \t]*\<.*\>[ \t]*")
|
||||
# We should generate and error for any occurrence of #include that does not match the previous pattern.
|
||||
non_std_inc_pat = re.compile(".*#include.*")
|
||||
|
||||
f = open(fname, 'r')
|
||||
linenum = 1
|
||||
for line in f:
|
||||
m1 = std_inc_pat.match(line)
|
||||
if m1:
|
||||
result.append(m1.group(1))
|
||||
elif not system_inc_pat.match(line) and non_std_inc_pat.match(line):
|
||||
raise MKException("Invalid #include directive at '%s':%s" % (fname, line))
|
||||
linenum = linenum + 1
|
||||
return result
|
||||
|
||||
|
||||
# Given a path dir1/subdir2/subdir3 returns ../../..
|
||||
def reverse_path(p):
|
||||
l = p.split('/')
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue