summaryrefslogtreecommitdiffstats
path: root/parsers/survex.py
diff options
context:
space:
mode:
authorPhilip Sargent <philip.sargent@gmail.com>2023-01-28 21:17:16 +0000
committerPhilip Sargent <philip.sargent@gmail.com>2023-01-28 21:17:16 +0000
commit03fa5f554808133b05c1bbbbd6f1392f32489ee7 (patch)
tree6fd1658ee61a0f9461b20e2d2c259e424cad488d /parsers/survex.py
parent0d9d30749080f6a4b6c72063434244110bd71fd7 (diff)
downloadtroggle-03fa5f554808133b05c1bbbbd6f1392f32489ee7.tar.gz
troggle-03fa5f554808133b05c1bbbbd6f1392f32489ee7.tar.bz2
troggle-03fa5f554808133b05c1bbbbd6f1392f32489ee7.zip
compiling more regexes
Diffstat (limited to 'parsers/survex.py')
-rw-r--r--parsers/survex.py29
1 files changed, 18 insertions, 11 deletions
diff --git a/parsers/survex.py b/parsers/survex.py
index f3d026e..985517b 100644
--- a/parsers/survex.py
+++ b/parsers/survex.py
@@ -201,8 +201,12 @@ class LoadingSurvex:
# python regex flags (?i) means case-insentitive, (?s) means . matches newline too
# see https://docs.python.org/3/library/re.html
rx_begin = re.compile(r"(?i)begin")
+ rx_begin2 = re.compile("(?i)begin$")
+
rx_end = re.compile(r"(?i)end$")
+ rx_end2 = re.compile("(?i)end$")
rx_title = re.compile(r"(?i)title$")
+ rx_title2 = re.compile("(?i)title$")
rx_ref = re.compile(r"(?i)ref$")
rx_data = re.compile(r"(?i)data$")
rx_flags = re.compile(r"(?i)flags$")
@@ -263,7 +267,7 @@ class LoadingSurvex:
unitsstack = []
legsnumberstack = []
slengthstack = []
- personexpedstack = []
+ teamexpedstack = []
stackbegin = []
flagsstack = []
datastack = []
@@ -293,7 +297,7 @@ class LoadingSurvex:
currentsurvexfile = None
currentcave = None
caverndate = None
- currentpersonexped = []
+ currentteamexped = []
pending = []
def __init__(self):
@@ -362,7 +366,7 @@ class LoadingSurvex:
personexpedition = GetPersonExpeditionNameLookup(expo).get(tm.lower())
if personexpedition:
put_person_on_trip(survexblock, personexpedition, tm)
- self.currentpersonexped.append(personexpedition) # used in push/pop block code
+ self.currentteamexped.append(personexpedition) # used in push/pop block code
elif known_foreigner(tm): # note, not using .lower()
message = f"- *team {expo.year} '{tm}' known foreigner on *team {survexblock.survexfile.path} ({survexblock}) in '{line}'"
print(self.insp + message)
@@ -519,7 +523,7 @@ class LoadingSurvex:
pe = GetPersonExpeditionNameLookup(expo).get(tm.lower())
if pe:
put_person_on_trip(survexblock, pe, tm)
- self.currentpersonexped.append(pe)
+ self.currentteamexped.append(pe)
else:
message = f"! *team {year} '{tm}' FAIL personexpedition lookup on *date {survexblock.survexfile.path} ({survexblock}) "
print(self.insp + message)
@@ -546,7 +550,7 @@ class LoadingSurvex:
pr.personexpedition = pe
pr.person = pr.personexpedition.person
pr.save()
- self.currentpersonexped.append(pe) # used in push/pop block code
+ self.currentteamexped.append(pe) # used in push/pop block code
elif known_foreigner(pr.personname): # note, not using .lower()
message = f"- *team {expo.year} '{pr.personname}' known foreigner on *date {survexblock.survexfile.path} ({survexblock}) in '{line}'"
print(self.insp + message)
@@ -1411,13 +1415,13 @@ class LoadingSurvex:
self.unitsstack.append((self.units, self.unitsfactor))
self.legsnumberstack.append(self.legsnumber)
self.slengthstack.append(self.slength)
- self.personexpedstack.append(self.currentpersonexped) # just one person?!
+ self.teamexpedstack.append(self.currentteamexped) # just one person?!
pushblock()
# PUSH state ++++++++++++++
self.legsnumber = 0
self.slength = 0.0
self.units = "metres"
- self.currentpersonexped = []
+ self.currentteamexped = []
printbegin()
newsurvexblock = SurvexBlock(
name=blkid,
@@ -1456,7 +1460,7 @@ class LoadingSurvex:
raise
# POP state ++++++++++++++
popblock()
- self.currentpersonexped = self.personexpedstack.pop() # just one person?!
+ self.currentteamexped = self.teamexpedstack.pop() # just one person?!
self.legsnumber = self.legsnumberstack.pop()
self.units, self.unitsfactor = self.unitsstack.pop()
self.slength = self.slengthstack.pop()
@@ -1617,7 +1621,8 @@ class LoadingSurvex:
print(message)
print(message, file=sys.stderr)
stash_data_issue(parser="survex", message=message, url=None, sb=(path))
- elif re.match("(?i)begin$", cmd):
+ elif self.rx_begin2.match(cmd):
+ #elif re.match("(?i)begin$", cmd):
self.depthbegin += 1
depth = " " * self.depthbegin
if args:
@@ -1627,7 +1632,8 @@ class LoadingSurvex:
self.stackbegin.append(pushargs.lower())
flinear.write(f" {self.depthbegin:2} {depth} *begin {args}\n")
pass
- elif re.match("(?i)end$", cmd):
+ elif self.rx_end2.match(cmd):
+ # elif re.match("(?i)end$", cmd):
depth = " " * self.depthbegin
flinear.write(f" {self.depthbegin:2} {depth} *end {args}\n")
if not args:
@@ -1644,7 +1650,8 @@ class LoadingSurvex:
self.depthbegin -= 1
pass
- elif re.match("(?i)title$", cmd):
+ elif self.rx_title2.match(cmd):
+ # elif re.match("(?i)title$", cmd):
depth = " " * self.depthbegin
flinear.write(f" {self.depthbegin:2} {depth} *title {args}\n")
pass