IF-Forum

» IF-Forum - Autorencafé - Schreiben! - I6: Default-Konstanten und spätere Wertzuweisungen
AntwortenNeues ThemaNeue Umfrage

I6: Default-Konstanten und spätere Wertzuweisungen

Geschrieben um 13:49 am 19.06.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Hallo,

weiß jemand, warum dieser Code nicht compiliert?



Default Headline "Ein Textadventure";

Constant Story SC_2;

Constant Headline SC_3;```

**Inform 6.31N:**
> Inform 6.31N for Win32 (22nd April 2010)

auto.inf(34): Error:  Expected new constant name but found Story

> Constant Story

auto.inf(34): Error:  Expected ';' but found Constant

> Constant

auto.inf(35): Error:  Expected new constant name but found Headline

> Constant Headline

auto.inf(35): Error:  Expected ';' but found Constant

> Constant

Was läuft da schief?
Geschrieben um 16:29 am 19.06.2010 | Zitat | Editieren | Löschen
Martin
Avatar
Mitglied
Prof Gumby
Beiträge: 634

Nicht getestet, aber der Code ist verkehrt herum. Default heißt "definiere diese Konstante, wenn es sie nicht bereits gibt" und ist daher äquivalent zu:


Ifndef Story;

Constant Story = SC_2;

Endif;

Die Defaults müssen am Ende kommen. In der Inform-Lib werden die meisten Defaults in der zuletzt eingebundenen Datei "Grammar.h" bzw. "GermanG.h" deklariert.

Da Default die Konstante deklariert, ist es ein Fehler, sie nachher mit Constant noch einmal zu deklarieren.

Geschrieben um 17:54 am 19.06.2010 | Zitat | Editieren | Löschen
ChristianB
Mitglied
Retired Gumby
Beiträge: 1062

Ah, danke Martin, dann hab ich es genau verkehrt herum verstanden. Ich wollte für die I7-Übersetzung das Generieren der Default-Titel/Headline einfacher machen, indem das Einbinden des entsprechenden NI-Compiler-Plugins ...

{-call:Plugins::Bibliographic::compile_constants}

... streiche/versetze, aber so wie es aussieht, ist die damals von Dir vorgeschlagene Lösung immer noch die erste Wahl.

Vielen Dank und viele Grüße,

Christian

AntwortenNeues ThemaNeue Umfrage
Powered by Spam Board SVN © 2007 - 2021
Impressum / Datenschutz