ubuntuusers.de

Syntax eines Werte überprüfen (BNF) in Libre Calc

Status: Gelöst | Ubuntu-Version: Ubuntu 12.04 (Precise Pangolin)
Antworten |

jake1776

Anmeldungsdatum:
10. März 2012

Beiträge: 86

Hallo,

Ich möchte ein Wert auf die Syntax, also den formalen Aufbau einer Sprache mit kontextfreier Grammatik überprüfen. Der Wert ist beispielsweise SuPeRdePp =2, die Backus- Naur- Form müsste dann so aussehen (oder ?):

1
<SuperDepp>  :: = S|s U|u P|p E|e R|r D|d E|e P|p P|p [ ] = [ ] 1|2|3|4|5|6|7|8|9|10

Das möchte ich jetzt irgendwie in Libre Calc rein kriegen, könntet ihr mir ein Tipp geben in welche Richtung die Formel dann gehen müsste?

Vielen Dank LG Jake

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Wenn ich deinen grammatikalisch und inhaltlich schwachen Beitrag richtig verstanden habe, willst Du einen Syntaxprüfer für kontextfreie Grammatiken erstellen und zwar für Libre Office‽

Also da musst Du definitiv auf eine darin integrierte Programmiersprache zurückgreifen - denn Du brauchst einen Kellerautomaten, um das zu überprüfen. Und das kannst Du mit einer einfachen "Formel" nicht nachstellen.

jake1776

(Themenstarter)

Anmeldungsdatum:
10. März 2012

Beiträge: 86

Also geht das nicht...

Vielen Dank

LG Jakob

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

jake1776 schrieb:

Also geht das nicht...

Wieso das? Ich schrieb ja nur, dass es mit einer einfachen Formel nicht geht - iirc hat Libre Office aber doch einen Basic-Dialekt eingebaut; Du müsstest also ein Script schreiben, welches einen Parser implementiert, der als Eingabe die Grammatik und das Wort bekommt. Dieser kann dann True oder False zurückgeben.

Aber ja, das ist sicherlich ein wenig aufwendig... k.A. ob man sich das in Basic antun will 😀

Wobei ich mich frage: Wozu willst Du das wissen und wenn Du Dich mit so etwas befasst, wieso ist Dir dann nicht klar, dass Du einen Kellerautomaten dafür brauchst?

jake1776

(Themenstarter)

Anmeldungsdatum:
10. März 2012

Beiträge: 86

Lysander schrieb:

Wobei ich mich frage: Wozu willst Du das wissen und wenn Du Dich mit so etwas befasst, wieso ist Dir dann nicht klar, dass Du einen Kellerautomaten dafür brauchst?

Wir werden das wahrscheinlich in der nächsten Schulstunde behandeln...

Also muss ich unter Makro gucken?

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

jake1776 schrieb:

Wir werden das wahrscheinlich in der nächsten Schulstunde behandeln...

Was genau war denn nun die Aufgabe? Man kann ja nicht erwarten, dass ihr einen Parser schreiben könnt, wenn ihr nicht einmal etwas simples wie einen Kellerautomaten behandelt habt 😲

Also muss ich unter Makro gucken?

k.A. - ich kenne mich mit solchen Office Sachen nicht aus.

Mein Tipp wäre aber, das *nicht* in einem Office-Paket zu machen, sondern in der Programmiersprache Deiner Wahl, also der, welche Du am besten beherrschst.

Das ist aber nur dann ein Sonntagsnachmittag-Projekt, wenn man fit ist in Sachen Programmierung an sich und Parser-Theorie im besonderen. Da Du nicht einmal weißt, wie ein Kellerautomat funktioniert, kannst Du das Problem mit Deinem bisherigen Wissen nicht lösen.

jake1776

(Themenstarter)

Anmeldungsdatum:
10. März 2012

Beiträge: 86

Wir sollten vermutlich nur die BNF aufstellen, aber ich wollte ein bisschen weiter gehen.

Übrigens scheint das eine beliebt Aufgabe zu sein: http://www.delphipraxis.net/145803-eine-textdatei-txt-dephi-auswerten.html#post986374

LG Jake

Lysander

Avatar von Lysander

Anmeldungsdatum:
30. Juli 2008

Beiträge: 2669

Wohnort: Hamburg

Wobei man das auch einfachst ohne formale Grammatik und Parser prüfen kann. Hier mal als Beispiel in Python 3: Gist

jake1776

(Themenstarter)

Anmeldungsdatum:
10. März 2012

Beiträge: 86

vielen vielen Dank!

Python geht in Calc einzubinden...

LG Jake

Antworten |