10
0
mirror of https://gitlab.com/scemama/irpf90.git synced 2024-12-22 04:13:33 +01:00

First test OK

Version:1.1.11
This commit is contained in:
Anthony Scemama 2009-09-09 17:55:17 +02:00
parent 98e97dbe22
commit d5aff50367
3 changed files with 16 additions and 12 deletions

View File

@ -81,7 +81,7 @@ class Fmodule(object):
def residual_text(self): def residual_text(self):
if '_residual_text' not in self.__dict__: if '_residual_text' not in self.__dict__:
from variables import build_use from variables import build_use, call_provides
from parsed_text import move_to_top from parsed_text import move_to_top
def remove_providers(text): def remove_providers(text):
result = [] result = []
@ -131,7 +131,7 @@ class Fmodule(object):
result = [] result = []
for vars,line in text: for vars,line in text:
result.append( ([],line) ) result.append( ([],line) )
result += map(lambda x: ([],Simple_line(line.i," call provide_%s"%(x),line.filename)), vars) result += map(lambda x: ([],Simple_line(line.i,x,line.filename)), call_provides(vars))
return result return result
result = remove_providers(self.text) result = remove_providers(self.text)

View File

@ -23,11 +23,11 @@ class Variable(object):
'''Name is lowercase''' '''Name is lowercase'''
if '_is_touched' not in self.__dict__: if '_is_touched' not in self.__dict__:
from variables import variables from variables import variables
result = True # False result = False
#for i in self.children: for i in self.children:
# if variables[i].is_touched: if variables[i].is_touched:
# result = True result = True
# break break
self._is_touched = result self._is_touched = result
return self._is_touched return self._is_touched
is_touched = property(is_touched) is_touched = property(is_touched)
@ -409,9 +409,8 @@ class Variable(object):
if '_builder' not in self.__dict__: if '_builder' not in self.__dict__:
if not self.is_main: if not self.is_main:
self._builder = [] self._builder = []
if '_needs' not in self.__dict__:
import parsed_text import parsed_text
from variables import build_use from variables import build_use, call_provides
for filename,buffer in parsed_text.parsed_text: for filename,buffer in parsed_text.parsed_text:
if self.line.filename[0].startswith(filename): if self.line.filename[0].startswith(filename):
break break
@ -423,11 +422,16 @@ class Variable(object):
if line.filename[1] == same_as: if line.filename[1] == same_as:
inside = True inside = True
if inside: if inside:
text.append(line) text.append( (vars,line) )
text += map( lambda x: ([],Simple_line(line.i,x,line.filename)), call_provides(vars) )
if isinstance(line,End_provider): if isinstance(line,End_provider):
if inside: if inside:
break break
name = self.name name = self.name
text = parsed_text.move_to_top(text,Declaration)
text = parsed_text.move_to_top(text,Implicit)
text = parsed_text.move_to_top(text,Use)
text = map(lambda x: x[1], text)
for line in filter(lambda x: type(x) not in [ Begin_doc, End_doc, Doc], text): for line in filter(lambda x: type(x) not in [ Begin_doc, End_doc, Doc], text):
if type(line) == Begin_provider: if type(line) == Begin_provider:
result = [ "subroutine bld_%s"%(name) ] result = [ "subroutine bld_%s"%(name) ]

View File

@ -1 +1 @@
version = "1.1.10" version = "1.1.11"