import re
import os

TRUE = True
FALSE = False

# same as in 'mk.py'
DOCNAME = 'document'
Rprefix = './Rchunks'

f = open('rnw.aux', 'r')
line = f.readlines()
f.close()

rnwaux = [e[:-1].split(' ') for e in line]

fname = "%s.rnw" % DOCNAME
f = open(fname, 'r')
lines = f.readlines()
f.close()

id1 = [i  for i in range(len(lines)) if re.search(r'\\begin\{Sinput\}', lines[i])]
id1 = id1 + [len(lines) + 1]
id2 = [i  for i in range(len(lines)) if re.search(r'\\end\{Sinput\}', lines[i])]

output = [''.join(lines[:(id1[0]-1)])]
for i in range(len(id2)):
  if rnwaux[i][1] == 'True':
    output.append(''.join(lines[id1[i]:(id2[i]+1)]))
  Rout = '%s/%s.Rout' % (Rprefix, rnwaux[i][0])
  if os.path.lexists(Rout) and os.path.getsize(Rout) > 0 and rnwaux[i][2] == 'verbatim':
    output.append('\\begin{Soutput}\n')
    f = open(Rout, 'r')
    output.append(''.join(f.readlines()))
    f.close()
    output.append('\\end{Soutput}\n') 
  output.append(''.join(lines[(id2[i]+1):id1[i+1]]))
fname = "%s.tex" % DOCNAME  
ftex = open(fname, 'w')
ftex.write(''.join(output)) 
ftex.close()
