示例#1
0
	def tbk_frame(s):
		if s.module.debug:
			if s.module.tbk_frame_rout[s.level]:
				n = s.module.tbk_frame_rout[s.level]
				s.module.tbk_frame_rout[s.level] = 0
				return tbk.init_frame(s.module.value, n)

		return ''
示例#2
0
	def tbk_mark(s):
		if s.release or s.module.tbk_mark_off:
			return ''

		elif s.module.tbk_frame_rout[s.level]:
			n = s.module.tbk_frame_rout[s.level]
			s.module.tbk_frame_rout[s.level] = 0
			return tbk.init_frame(s.module.value, n) + tbk.open_line(s.lineno)

		else:
			return tbk.open_line(s.lineno)
示例#3
0
	def write_fortran(s):
		b = Buffer()

		b('module {:s} ! {:s}', s.module_guid, s.value)

		if s.value != fytbk.url:
			b += 'use ' + s.stack.fytbk.module_guid

		b += s.b

		if s.method_buffer.has_content:
			if not s.contains_used[0]:
				b += '\ncontains\n'
				s.contains_used[0] = 1
			b += s.method_buffer

		if s.main.has_content:
			if not s.contains_used[0]:
				b += '\ncontains\n'

			b += 'subroutine {:s}_main()'.format(s.module_guid)

			b.indent

			if s.debug:
				b != tbk.init_frame(s.value, 'main')

			b *= s.main

			if s.debug:
				b != tbk.del_frame()

			b.dedent
			
			b += 'end subroutine'

		b += 'end module'

		source = s.write_guid(str(b))

		open(s.url.fortran_path, 'w').write(source)
示例#4
0
文件: unit.py 项目: denfromufa/fython
	def tbk_frame(s):
		if s.module.debug:
			return tbk.init_frame(s.module.value, s.name.value)

		else:
			return ''