Skip to content

Commit

Permalink
added equal sign translation for colors, added additional bracket han…
Browse files Browse the repository at this point in the history
…dling
  • Loading branch information
wanhoff committed Apr 2, 2024
1 parent 4a44235 commit a8574d0
Show file tree
Hide file tree
Showing 12 changed files with 119 additions and 85 deletions.
11 changes: 7 additions & 4 deletions src/main/antlr4/org/sep3tools/gen/PetroGrammar.g4
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
grammar PetroGrammar;

schichtbeschreibung: bestandteile;
schichtbeschreibung:
(bestandteile)+
;

bestandteile:
bestandteile ',' bestandteile # Aufzaehlung_b
bestandteile (',' bestandteile)+ # Aufzaehlung_b
| '(' bestandteile ',' bestandteile ')' ( '(' attribute ')' )? # Aufzaehlung_b_k
| bestandteil # Teil
| uebergang_bes # Uebergang_b
| '(' bestandteile ')' # Klammer
;

uebergang_bes:
Expand All @@ -26,7 +29,7 @@ attribute:
attribut # att
| uebergang_att # Uebergang_a
| attr=attribute '(' unter=attribute ')' # unter_Attribute
| attribute (',' attribute)+ # Aufzaehlung_a
| attribute (',' attribute)+ # Aufzaehlung_a
| '(' attribute ')' '(' attribute ')' # Aufzaehlung_a_klammer
;

Expand All @@ -43,7 +46,7 @@ attribut:
TIEFE: ([0-9]|'.')+;
TEIL: ANY+;
UNBEKANNT: ANY+;
ANY: [a-z]|[A-Z]|[0-9]|'^'|'*'|'+'|'"'|'%';
ANY: [a-z]|[A-Z]|[0-9]|'^'|'*'|'+'|'"'|'%'|'=';
FRAGLICH: '?';
SICHER: '!';
DATENFELDKUERZEL: ('S'|'P'|'G'|'F'|'Z')':';
23 changes: 21 additions & 2 deletions src/main/java/org/sep3tools/PetroVisitor.java
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,16 @@ private static String getS3InDfResultSet(String df, String searchTerm) {
*/
@Override
public String visitSchichtbeschreibung(PetroGrammarParser.SchichtbeschreibungContext ctx) {
return visitChildren(ctx);
String teile = "";
for (PetroGrammarParser.BestandteileContext teil : ctx.bestandteile()) {
if (teile.isEmpty()) {
teile = visit(teil);
}
else {
teile = teile + ", " + visit(teil);
}
}
return visitChildren(ctx).trim();
}

/**
Expand Down Expand Up @@ -139,6 +148,11 @@ public String visitBestandteil_fremddatenfeld(PetroGrammarParser.Bestandteil_fre
return dfKuerzel + teil;
}

@Override
public String visitKlammer(PetroGrammarParser.KlammerContext ctx) {
return "(" + visitChildren(ctx) + ") ";
}

/**
* Visit a parse tree produced by the {@code bestandteil_sicher} labeled alternative
* in {@link PetroGrammarParser}.
Expand Down Expand Up @@ -234,6 +248,11 @@ private static String getColorString(String color) {
int partialBodenLength = 2;
while (partialBodenLength <= forColorSeparation.length()) {
String partialTermForColor = forColorSeparation.substring(forColorSeparation.length() - partialBodenLength);
if (partialTermForColor.endsWith("=")) {
bodenTerm = "lich" + bodenTerm;
forColorSeparation = forColorSeparation.substring(0, forColorSeparation.length() - 1);
partialBodenLength--;
}
String colorPart = getS3InDfResultSet("F:", partialTermForColor);
if (!colorPart.isEmpty()) {
bodenTerm = colorPart + bodenTerm;
Expand Down Expand Up @@ -345,7 +364,7 @@ public String visitUebergang_bes(PetroGrammarParser.Uebergang_besContext ctx) {
*/
@Override
public String visitAufzaehlung_b(PetroGrammarParser.Aufzaehlung_bContext ctx) {
return visit(ctx.bestandteile(0)) + ", " + visit(ctx.bestandteile(1));
return visit(ctx.bestandteile(0)).trim() + ", " + visit(ctx.bestandteile(1)).trim();
}

/**
Expand Down
6 changes: 3 additions & 3 deletions src/main/resources/beschbgtest.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
kb2,kb3(un)=schlechte Kornbindung, mäßige Kornbindung (unten)
idm=Mitte
(stf-hfe)(ob),(stf)(idm),(stf-hfe,stf)(un)=(steif bis halbfest) (oben), (steif) (Mitte), (steif bis halbfest, steif) (unten)
kb2,kb3(un) = schlechte Kornbindung, mäßige Kornbindung (unten)
idm = Mitte
(stf-hfe)(ob),(stf)(idm),(stf-hfe,stf)(un) = (steif bis halbfest) (oben), (steif) (Mitte), (steif bis halbfest, steif) (unten)
2 changes: 1 addition & 1 deletion src/main/resources/beschbvtest.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
spvl(30%-40%,tv(29.02-29.23))=Spülverlust [Prozent] (30% bis 40%, Teufe von (29,02 bis 29,23))
spvl(30%-40%,tv(29.02-29.23)) = Spülverlust [Prozent] (30% bis 40%, Teufe von (29,02 bis 29,23))
2 changes: 1 addition & 1 deletion src/main/resources/bgruppetest.properties
Original file line number Diff line number Diff line change
@@ -1 +1 @@
GE=Kies, enggestuft
GE = Kies, enggestuft
58 changes: 30 additions & 28 deletions src/main/resources/farbetest.properties
Original file line number Diff line number Diff line change
@@ -1,28 +1,30 @@
ro=rot
bn=braun
dro=dunkelrot
hbn=hellbraun
gr=grau
bl=blau
dd=sehr dunkel
hgr=hellgrau
mt=matt
ol=oliv
olst=olivstichig
sw=schwarz
ge=gelb
dgr=dunkelgrau
gn=grün
rs=rosa
ddro=sehr dunkelrot
holst=hellolivstichig
gnli=grünlich
grst=graustichig
robn=rotbraun
blro=blaurot
mtol=mattoliv
mtolst=mattolivstichig
drohbngr,blro,ddro,hgrbn,mtgr,mtol,mtolst=dunkelrothellbraungrau, blaurot, sehr dunkelrot, hellgraubraun, mattgrau, mattoliv, mattolivstichig
dro-hgr=dunkelrot bis hellgrau
robn,sw,ge,dgr-gn,swgerobnrs=rotbraun, schwarz, gelb, dunkelgrau bis grün, schwarzgelbrotbraunrosa
gnli,grst=grünlich, graustichig
ro = rot
bn = braun
dro = dunkelrot
hbn = hellbraun
gr = grau
bl = blau
dd = sehr dunkel
hgr = hellgrau
mt = matt
ol = oliv
olst = olivstichig
sw = schwarz
ge = gelb
dgr = dunkelgrau
gn = grün
rs = rosa
ddro = sehr dunkelrot
holst = hellolivstichig
gnli = grünlich
grst = graustichig
robn = rotbraun
blro = blaurot
mtol = mattoliv
mtolst = mattolivstichig
drohbngr,blro,ddro,hgrbn,mtgr,mtol,mtolst = dunkelrothellbraungrau, blaurot, sehr dunkelrot, hellgraubraun, mattgrau, mattoliv, mattolivstichig
dro-hgr = dunkelrot bis hellgrau
robn,sw,ge,dgr-gn,swgerobnrs = rotbraun, schwarz, gelb, dunkelgrau bis grün, schwarzgelbrotbraunrosa
gnli,grst = grünlich, graustichig
((robn,rovi,bnvi,gngr,hbngr)(wl))(ob),rovi,robn,rovibn,bnro,(gn,hge,ro,gngr,holgr)(lag) = ((rotbraun, rotviolett, braunviolett, grüngrau, hellbraungrau) (wechsellagernd)) (oben), rotviolett, rotbraun, rotviolettbraun, braunrot, (grün, hellgelb, rot, grüngrau, hellolivgrau) (Lagen)
olgr-smgn=gr,hol-hgrgn=-ol,dgr-dolgr,bnro-rovi(zt),(hge=,smbn)(lag) = olivgrau bis schmutziggrünlichgrau, helloliv bis hellgraugrünlich bis oliv, dunkelgrau bis dunkelolivgrau, braunrot bis rotviolett (zum Teil [veraltet]), (hellgelblich, schmutzigbraun) (Lagen)
8 changes: 5 additions & 3 deletions src/main/resources/fremddatenfeldtest.properties
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
G(F:ro)=Kies [gerundet] (rot)
G(F:ddro)=Kies [gerundet] (sehr dunkelrot)
U(hz(res),H(res),zg1,F:mtolst)=Schluff (Holzreste (Reste), Torf (Reste), sehr schwach zersetzt, mattolivstichig)
G(F:ro) = Kies [gerundet] (rot)
G(F:ddro) = Kies [gerundet] (sehr dunkelrot)
U(hz(res),H(res),zg1,F:mtolst) = Schluff (Holzreste (Reste), Torf (Reste), sehr schwach zersetzt, mattolivstichig)
S:tmiBRuB = Untere Brieske-Schichten B
S:tmiF1 = Lausitzer Flöz 1

24 changes: 13 additions & 11 deletions src/main/resources/genesetest.properties
Original file line number Diff line number Diff line change
@@ -1,11 +1,13 @@
as,Lou(lok)=Abspülung, Schwemmlöss (lokal)
Mg,Gb(P:^kkn)=Geschiebemergel, Geschiebe (Knollenkalk)
y=Auffüllung [allgemein]
ya=Asche (anthropogen)
lok=lokal
y,(ya,P:fG)(lok)=Auffüllung [allgemein], (Asche (anthropogen), Feinkies [2,0-6,3 mm]) (lokal)
(P:t4)=(stark tonig)
(Mg,lw)=(Geschiebemergel, lagenweise)
gf,g=glazifluviatil, glaziär
(P:t4)(Mg,lw),gf,g=(stark tonig) (Geschiebemergel, lagenweise), glazifluviatil, glaziär
(P:fs,P:ms)(Mg),g=(feinsandig, mittelsandig) (Geschiebemergel), glaziär
as,Lou(lok) = Abspülung, Schwemmlöss (lokal)
Mg,Gb(P:^kkn) = Geschiebemergel, Geschiebe (Knollenkalk)
y = Auffüllung [allgemein]
ya = Asche (anthropogen)
lok = lokal
y,(ya,P:fG)(lok) = Auffüllung [allgemein], (Asche (anthropogen), Feinkies [2,0-6,3 mm]) (lokal)
(P:t4) = (stark tonig)
(Mg,lw) = (Geschiebemergel, lagenweise)
gf,g = glazifluviatil, glaziär
(P:t4)(Mg,lw),gf,g = (stark tonig) (Geschiebemergel, lagenweise), glazifluviatil, glaziär
(P:fs,P:ms)(Mg),g = (feinsandig, mittelsandig) (Geschiebemergel), glaziär
L(F:bn),t,C(alpi,+B) = L (braun), Terrasse, C-Horizont (alpi, +B)
Mg,Gb(P:^kkn),C(S:tmiF3) = Geschiebemergel, Geschiebe (Knollenkalk), C-Horizont (Lausitzer Flöz 3 (Dritter miozäner Flözhorizont))
6 changes: 3 additions & 3 deletions src/main/resources/kalkgehtest.properties
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
zg1-zg2(ob)=sehr schwach zersetzt bis schwach zersetzt (oben)
kf,k(lse,F:we)=kalkfrei, kalkhaltig (als Linse, weiss)
k,k(lse,F:we)=kalkhaltig, kalkhaltig (als Linse, weiss)
zg1-zg2(ob) = sehr schwach zersetzt bis schwach zersetzt (oben)
kf,k(lse,F:we) = kalkfrei, kalkhaltig (als Linse, weiss)
k,k(lse,F:we) = kalkhaltig, kalkhaltig (als Linse, weiss)
58 changes: 32 additions & 26 deletions src/main/resources/petrotest.properties
Original file line number Diff line number Diff line change
@@ -1,26 +1,32 @@
^ms=Mittelsandstein
^u=Schluffstein
^gs=Grobsandstein
W,^gs(l-fs),^u=Wasser, Grobsandstein (lehmig bis feinsandig), Schluffstein
^ms(r2,r3(tw),gs(lw,r2-r3)),^u(t,lw),^gs(r3,bei(113),nf?)=Mittelsandstein (kantengerundet, mäßig gerundet (teilweise), grobsandig (lagenweise, kantengerundet bis mäßig gerundet)), Schluffstein (tonig, lagenweise), Grobsandstein (mäßig gerundet, bei 113, Nachfall (fraglich))
^ksw-^kal(mas,fe,spt,brc,cav2(bei(25.5)),p(unz,tv(40.4))),Rfl("ca"),^if2(knl,bei(31.4,32.8,34.65,35.8,40.4))=Schwammkalk bis Algenkalk (massig, fest, splittrig, brechend, schwach kavernös (bei 25,5), porös (unten zunehmend, Teufe von 40,4)), Hohlraumfüllung (Kalzit), wenig Flint (knollig, bei 31,4, 32,8, 34,65, 35,8, 40,4)
G(fg-gg,ms-gs,mats,mata,grs(tw)),fX-mX(mata),mS(fs,grs,fg-mg,mx(voe))=Kies [gerundet] (feinkiesig bis grobkiesig, mittelsandig bis grobsandig, Schwarzwaldmaterial, alpines Material, grusig (teilweise)), Feinsteinstücke [2,0-6,3 mm] bis Mittelsteinstücke [6,3-20 mm] (alpines Material), Mittelsand [0,2-0,63 mm] (feinsandig, grusig, feinkiesig bis mittelkiesig, mittelsteinig (vereinzelt vorhanden))
G(fg-gg,ms-gs,mats,mata,grs(tw)),fX-mX(mata),mS(fs,grs,fg-mg2,mx(voe))=Kies [gerundet] (feinkiesig bis grobkiesig, mittelsandig bis grobsandig, Schwarzwaldmaterial, alpines Material, grusig (teilweise)), Feinsteinstücke [2,0-6,3 mm] bis Mittelsteinstücke [6,3-20 mm] (alpines Material), Mittelsand [0,2-0,63 mm] (feinsandig, grusig, feinkiesig bis schwach mittelkiesig, mittelsteinig (vereinzelt vorhanden))
U(hz(res),H(res),zg1)=Schluff (Holzreste (Reste), Torf (Reste), sehr schwach zersetzt)
(S-G)(u,t,pf(zg,vw))=(Sand [allgemein] bis Kies [gerundet]) (schluffig, tonig, Pflanzenreste (zersetzt, verwittert))
U(ms2,x(+Gr(gro(0.005))))=Schluff (schwach mittelsandig, steinig (Granit (groß 0,005)))
(^u(fs)-^fs(u)),^d(u,"ba")=(Schluffstein (feinsandig) bis Feinsandstein (schluffig)), Dolomitstein (schluffig, Baryt)
(fG-gG)(x)=(Feinkies [2,0-6,3 mm] bis Grobkies [20-63 mm]) (steinig)
(^u(t,fs(tw)),^gs,^fs,^d(s,ikl))(wl)=(Schluffstein (tonig, feinsandig (teilweise)), Grobsandstein, Feinsandstein, Dolomitstein (sandig, intraklastisch)) (wechsellagernd)
(U,fS)(ms2)=(Schluff, Feinsand [0,063-0,2 mm]) (schwach mittelsandig)
(^k(mas,fla,pof,bel)),(fls(rgu))=(Kalkstein (massig, flaserig, Porifera, Belemniten)), (Flasern (unregelmäßig))
"ca"=Kalzit
ca=Calamiten
(gG-mG-fG)(gs-fs)=(Grobkies [20-63 mm] bis Mittelkies [6,3-20 mm] bis Feinkies [2,0-6,3 mm]) (grobsandig bis feinsandig)
G?=Kies [gerundet] fraglich
G!=Kies [gerundet] sicher
(fS-mS)(u,(fg-mg2)(lok))=(Feinsand [0,063-0,2 mm] bis Mittelsand [0,2-0,63 mm]) (schluffig, (feinkiesig bis schwach mittelkiesig) (lokal))
t4=stark tonig
(fS-mS)(t,u)(pw)=(Feinsand [0,063-0,2 mm] bis Mittelsand [0,2-0,63 mm]) (tonig, schluffig) (partienweise)
U(fs,t2,(mg-gg)(voe))=Schluff (feinsandig, schwach tonig, (mittelkiesig bis grobkiesig) (vereinzelt vorhanden))
(fG-mG)(gs,(t,u)(pw))=(Feinkies [2,0-6,3 mm] bis Mittelkies [6,3-20 mm]) (grobsandig, (tonig, schluffig) (partienweise))
^ms = Mittelsandstein
^u = Schluffstein
^gs = Grobsandstein
W,^gs(l-fs),^u = Wasser, Grobsandstein (lehmig bis feinsandig), Schluffstein
^ms(r2,r3(tw),gs(lw,r2-r3)),^u(t,lw),^gs(r3,bei(113),nf?) = Mittelsandstein (kantengerundet, mäßig gerundet (teilweise), grobsandig (lagenweise, kantengerundet bis mäßig gerundet)), Schluffstein (tonig, lagenweise), Grobsandstein (mäßig gerundet, bei 113, Nachfall (fraglich))
^ksw-^kal(mas,fe,spt,brc,cav2(bei(25.5)),p(unz,tv(40.4))),Rfl("ca"),^if2(knl,bei(31.4,32.8,34.65,35.8,40.4)) = Schwammkalk bis Algenkalk (massig, fest, splittrig, brechend, schwach kavernös (bei 25,5), porös (unten zunehmend, Teufe von 40,4)), Hohlraumfüllung (Kalzit), wenig Flint (knollig, bei 31,4, 32,8, 34,65, 35,8, 40,4)
G(fg-gg,ms-gs,mats,mata,grs(tw)),fX-mX(mata),mS(fs,grs,fg-mg,mx(voe)) = Kies [gerundet] (feinkiesig bis grobkiesig, mittelsandig bis grobsandig, Schwarzwaldmaterial, alpines Material, grusig (teilweise)), Feinsteinstücke [2,0-6,3 mm] bis Mittelsteinstücke [6,3-20 mm] (alpines Material), Mittelsand [0,2-0,63 mm] (feinsandig, grusig, feinkiesig bis mittelkiesig, mittelsteinig (vereinzelt vorhanden))
G(fg-gg,ms-gs,mats,mata,grs(tw)),fX-mX(mata),mS(fs,grs,fg-mg2,mx(voe)) = Kies [gerundet] (feinkiesig bis grobkiesig, mittelsandig bis grobsandig, Schwarzwaldmaterial, alpines Material, grusig (teilweise)), Feinsteinstücke [2,0-6,3 mm] bis Mittelsteinstücke [6,3-20 mm] (alpines Material), Mittelsand [0,2-0,63 mm] (feinsandig, grusig, feinkiesig bis schwach mittelkiesig, mittelsteinig (vereinzelt vorhanden))
U(hz(res),H(res),zg1) = Schluff (Holzreste (Reste), Torf (Reste), sehr schwach zersetzt)
(S-G)(u,t,pf(zg,vw)) = (Sand [allgemein] bis Kies [gerundet]) (schluffig, tonig, Pflanzenreste (zersetzt, verwittert))
U(ms2,x(+Gr(gro(0.005)))) = Schluff (schwach mittelsandig, steinig (Granit (groß 0,005)))
(^u(fs)-^fs(u)),^d(u,"ba") = (Schluffstein (feinsandig) bis Feinsandstein (schluffig)), Dolomitstein (schluffig, Baryt)
(fG-gG)(x) = (Feinkies [2,0-6,3 mm] bis Grobkies [20-63 mm]) (steinig)
(^u(t,fs(tw)),^gs,^fs,^d(s,ikl))(wl) = (Schluffstein (tonig, feinsandig (teilweise)), Grobsandstein, Feinsandstein, Dolomitstein (sandig, intraklastisch)) (wechsellagernd)
(U,fS)(ms2) = (Schluff, Feinsand [0,063-0,2 mm]) (schwach mittelsandig)
(^k(mas,fla,pof,bel)),(fls(rgu)) = (Kalkstein (massig, flaserig, Porifera, Belemniten)), (Flasern (unregelmäßig))
"ca" = Kalzit
ca = Calamiten
(gG-mG-fG)(gs-fs) = (Grobkies [20-63 mm] bis Mittelkies [6,3-20 mm] bis Feinkies [2,0-6,3 mm]) (grobsandig bis feinsandig)
G? = Kies [gerundet] fraglich
G! = Kies [gerundet] sicher
(fS-mS)(u,(fg-mg2)(lok)) = (Feinsand [0,063-0,2 mm] bis Mittelsand [0,2-0,63 mm]) (schluffig, (feinkiesig bis schwach mittelkiesig) (lokal))
t4 = stark tonig
(fS-mS)(t,u)(pw) = (Feinsand [0,063-0,2 mm] bis Mittelsand [0,2-0,63 mm]) (tonig, schluffig) (partienweise)
U(fs,t2,(mg-gg)(voe)) = Schluff (feinsandig, schwach tonig, (mittelkiesig bis grobkiesig) (vereinzelt vorhanden))
(fG-mG)(gs,(t,u)(pw)) = (Feinkies [2,0-6,3 mm] bis Mittelkies [6,3-20 mm]) (grobsandig, (tonig, schluffig) (partienweise))
Lf,Lou,U(t(4),fs(2),smi(T,F:hgn=)) = Auelehm, Schwemmlöss, Schluff (tonig 4, feinsandig 2, in Schmitzen (Ton, hellgrünlich))
T(u,sli,F:sw=,F:grbn,wh,wh-stf) = Ton (schluffig, schlickig, schwarzlich, graubraun, weich, weich bis steif)
mS(g),M(smz,F:ge=gr) = Mittelsand [0,2-0,63 mm] (kiesig), Mergel (Schmitzen, gelblichgrau)
Lf,U,Sc(M,t,stf,F:bn,F:gn=bn),B(X) = Auelehm, Schluff, Sc (Mergel, tonig, steif, braun, grünlichbraun), Brocken (Steine [63-200 mm])
^s(kgm-kgg,hf,F:hgn=gr) = Sandstein (mittelkörnig bis grobkörnig, hartfest, hellgrünlichgrau)
M(ss(2),brl,stf-sth,F:gn=gr,yrs) = Mergel (geschichtet 2, bröckelig, steif bis halbsteif, grünlichgrau, yrs)
4 changes: 2 additions & 2 deletions src/main/resources/zusatztest.properties
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
AS=Sattelfläche
gwt(3.5,28.03.2001)=gwt (3,5, 28,03,2001)
AS = Sattelfläche
gwt(3.5,28.03.2001) = gwt (3,5, 28,03,2001)
2 changes: 1 addition & 1 deletion src/test/java/org/sep3tools/SepExamplesTest.java
Original file line number Diff line number Diff line change
Expand Up @@ -82,7 +82,7 @@ public void verifyFremdDatenfeldExamples() {
public void verifySepExamples(String df, String propFile) {
JavaConnector.setPropertiesFile(DBPROPFILENAME);
JavaConnector.setDf(df);
Properties properties = loadPropertiesFromFile(propFile, "=");
Properties properties = loadPropertiesFromFile(propFile, " = ");

Enumeration enuKeys = properties.keys();
while (enuKeys.hasMoreElements()) {
Expand Down

0 comments on commit a8574d0

Please sign in to comment.