summaryrefslogtreecommitdiffstats
path: root/parsers/survex.py
blob: 0f75e068e2bc2784105f0cd62864916dec2e8084 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
import settings
import expo.models as models
import re
import os

def readFile(filename):
    for line in fileIterator(settings.SURVEX_DATA, filename):
        print line

re_include_extension = re.compile(r"^\s*\*include\s+([^\s]*).svx$", re.IGNORECASE)
re_include_no_extension = re.compile(r"^\s*\*include\s+([^\s]*)$", re.IGNORECASE)

def fileIterator(directory, filename):
    f = open(os.path.join(directory, filename + ".svx"), "rb")
    for line in f.readlines():
        include_extension = re_include_extension.match(line)
        include_no_extension = re_include_no_extension.match(line)
        def a(include):
            link = re.split(r"/|\\", include)
            print os.path.join(directory, *link[:-1]), link[-1]
            return fileIterator(os.path.join(directory, *link[:-1]), link[-1])
        if include_extension:
            for b in a(include_extension.groups()[0]):
                yield b
        elif include_no_extension:
            for b in a(include_no_extension.groups()[0]):
                yield b
        else:
            yield line

readFile("all")