if-de :: Forum Foren-Übersicht
Autor Nachricht
<  Optionale Präpositionen?
Wilson
BeitragVerfasst am: Mi, 20 Apr 2016 - 9:28  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 10.04.2016
Beiträge: 8

Kann ich in Inform bei einer Understand Anweisung so etwas wie optionale Worte definieren?

Ich würde am Liebsten so etwas definieren:

Code:
Understand "klingel an/bei/-- Haus/Hausnummer/-- [number]" as ringing.


Geht aber nicht, weil "/--" nicht verstanden wird. Muss ich jede Variante einzeln definieren? Das wären 9 Understand Definitionen. Ganz schön viel.

Optionale Präpositionen sind doch nicht selten (zB: Lies Buch und Lies in dem Buch). Dafür muss es doch eine Lösung geben.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Mi, 20 Apr 2016 - 10:30  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Es gibt bei den Präpositionen keine Möglichkeit, Leerstellen zu definieren. Das hängt mit der Struktur der grammar lines zusammen, die aus der Understand-Definition auf Inform-6-Ebene gebildet werden.

Aus

Understand "klingel an/bei/-- Haus/Hausnummer/-- [number]" as ringing.

wird
Code:
Verb 'klingel'
    * 'an' / 'bei' / '--' 'haus' / 'hausnummer' / '--' DECIMAL_TOKEN  -> A95_ringing
;

Es wird eine dritte Präposition '--' definiert, die auch genau so verstanden wird, sodass der Spieler in deinem Fall auch "KLINGEL -- -- 11" als Kommando eingeben könnte.

Wilson hat folgendes geschrieben:
Optionale Präpositionen sind doch nicht selten (zB: Lies Buch und Lies in dem Buch).

Abgesehen davon, dass Leerstellen in Satzmustern nicht vorgesehen sind, sollten hier zwei Satzmuster angegeben werden, weil die Kasus abweichend sind: LIES BUCH (Akkusativ) vs. LIES IN DEM BUCH (Dativ). Wenn du einen Blick in die Satzmuster-Definitionen in der Erweiterungs-Datei German.i7x (Section -- German commands) wirfst, kannst du sehen, was da so an Aufwand getrieben werden muss, in manchen Fällen.

Neue Satzmuster sind eigentlich immer etwas Schreibkram, wenn man möglichst viele Varianten berücksichtigen möchte.

[Edit: Aber mir fällt gerade ein, dass man sich mit etwas Inform-6-Kenntnissen eigene Präpositions-Token bauen kann, in denen optionale Leerstellen möglich sind. (vgl. das [dir]-Token).]

Hier mal ein Beispiel:
Code:

Include (-
[ AN_BEI_TOKEN;
    if (NextWord() ~= 'an' or 'bei') wn--;
    return GPR_PREPOSITION;
];

[ HAUSNUMMER_TOKEN;
    if (NextWord() ~= 'haus' or 'hausnummer') wn--;
    return GPR_PREPOSITION;
];
-).

The Understand token an-bei translates into I6 as "AN_BEI_TOKEN".
The Understand token hausnummer translates into I6 as "HAUSNUMMER_TOKEN".


Damit kannst du das Satzmuster so definieren:

Understand "klingel [an-bei] [hausnummer] [number]" as ringing.

Vielleicht geht das auch direkt mit Inform-7-Mitteln, aber die sind mir nicht bekannt.
_________________
Worichtung willst du ingehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Wilson
BeitragVerfasst am: Mi, 20 Apr 2016 - 16:22  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 10.04.2016
Beiträge: 8

Danke. Das sieht kompliziert aus; muss ich mir ersteinmal mit einem inform 6 Handbuch ansehen :-). Ich glaube, dann ist mehrfaches Definieren des Verbs doch einfacher.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Mi, 20 Apr 2016 - 16:57  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

In der neuen (mit GerX nicht kompatiblen) I7-Version kann man wohl Leerstellen definieren:

https://inform7.uservoice.com/forums/57320-general/suggestions/751366--parsing-null-token-for-understand-grammar

GerX-3-Nutzer müssen vorerst noch etwas mehr tippen (müssen sie ohnehin ;)).
_________________
Worichtung willst du ingehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Wilson
BeitragVerfasst am: Do, 21 Apr 2016 - 11:48  Antworten mit Zitat
Neuling
Neuling


Anmeldungsdatum: 10.04.2016
Beiträge: 8

Ja, schade, das die neueste Version nicht kompatibel ist. Es ist irritierend, mit einem älteren System arbeiten zu sollen.

Weißt Du, ob an der GerX Extension noch gearbeitet wird? Es war ja eine sehr verdienstvolle Arbeit.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
ChristianB
BeitragVerfasst am: Do, 21 Apr 2016 - 12:38  Antworten mit Zitat
Experte
Experte


Anmeldungsdatum: 05.05.2004
Beiträge: 633
Wohnort: Hamburg

Ja, wir arbeiten offiziell noch dran. Aber das neue System eignet sich nach neuestem Kenntnisstand nicht für das deutsche Verbalsystem.

Ich fürchte, das hat sich noch nicht zu Graham Nelson rumgesprochen. Er hat sich neulich mal mit ein paar Hinweisen bei uns gemeldet, aber wie das ausgegangen ist, dazu weiß proc vielleicht mehr. Mit dem neuen Preform-Kram habe ich mich noch nicht beschäftigt, aber auch die "klassischen" Teile der Erweiterung funktionieren nur im Labor (und das ist seit 2012 nicht mehr groß aufgeräumt worden).
_________________
Worichtung willst du ingehen?
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden Website dieses Benutzers besuchen
Beiträge der letzten Zeit anzeigen:   
Alle Zeiten sind GMT + 1 Stunde (MEZ)

Nächstes Thema anzeigen
Vorheriges Thema anzeigen
Seite 1 von 1
if-de :: Forum Foren-Übersicht  >  Inform & Glulx

Neues Thema eröffnen   Neue Antwort erstellen


 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.



Kontakt: Administrator

Powered by phpBB and NoseBleed v1.05