summaryrefslogtreecommitdiff
path: root/numpy/f2py/lib/parsefortran.py
diff options
context:
space:
mode:
authorPearu Peterson <pearu.peterson@gmail.com>2006-07-04 12:12:47 +0000
committerPearu Peterson <pearu.peterson@gmail.com>2006-07-04 12:12:47 +0000
commita8672c2c5e1fe4ae0c51805aa1eed5d736a5eedf (patch)
treeb081bf1ae86d4b0f734157e2e7810c8fb43568b0 /numpy/f2py/lib/parsefortran.py
parent17d8921d6d37745e01601fc19497ae2b4029b10c (diff)
downloadnumpy-a8672c2c5e1fe4ae0c51805aa1eed5d736a5eedf.tar.gz
Working on Fortran analyzer.
Diffstat (limited to 'numpy/f2py/lib/parsefortran.py')
-rw-r--r--numpy/f2py/lib/parsefortran.py18
1 files changed, 15 insertions, 3 deletions
diff --git a/numpy/f2py/lib/parsefortran.py b/numpy/f2py/lib/parsefortran.py
index 33a6eb112..314bbfa24 100644
--- a/numpy/f2py/lib/parsefortran.py
+++ b/numpy/f2py/lib/parsefortran.py
@@ -17,6 +17,7 @@ from numpy.distutils.misc_util import yellow_text, red_text
from readfortran import FortranFileReader, FortranStringReader
from block_statements import BeginSource
+from utils import AnalyzeError
class FortranParser:
@@ -37,7 +38,7 @@ class FortranParser:
def parse(self):
try:
- return BeginSource(self)
+ block = self.block = BeginSource(self)
except KeyboardInterrupt:
raise
except:
@@ -50,6 +51,16 @@ class FortranParser:
reader = reader.reader
traceback.print_exc(file=sys.stdout)
self.reader.show_message(red_text('STOPPED PARSING'), sys.stdout)
+ return
+ return
+
+ def analyze(self):
+ try:
+ self.block.analyze()
+ except AnalyzeError:
+ pass
+ except:
+ raise
return
def test_pyf():
@@ -123,8 +134,9 @@ def simple_main():
reader = FortranFileReader(filename)
print yellow_text('Processing '+filename+' (mode=%r)' % (reader.mode))
parser = FortranParser(reader)
- block = parser.parse()
- #print block
+ parser.parse()
+ parser.analyze()
+ #print parser.block
def profile_main():
import hotshot, hotshot.stats