Autor Téma: Initialization jako soucast nazvu unit  (Přečteno 289 krát)

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2295
  • Karma: 123
    • Verze Delphi: D2007, XE3, DX10
Initialization jako soucast nazvu unit
« kdy: 05-11-2018, 11:47:09 »
Potreboval bych pojmenovat unit xxxx.Initialization[ .yyyy], ale Delphi narika, ze ma Initialization jako rezervovany symbol. Asi neexistuje cesta, jak po presvedcit, aby to akceptoval (protoze jinak budu muset pri automatickem generovani zprav, typu & spol. jeste udelat mapovani namespacu a vhodne to prejmenovat)

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1285
  • Karma: 56
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Initialization jako soucast nazvu unit
« Odpověď #1 kdy: 05-11-2018, 12:23:14 »
Excellent
Rated 2 times
Asi neexistuje cesta, jak po presvedcit, aby to akceptoval

Nejspis ne. Leda po ulozeni pod nazvem bez rezervovanych slov soubor ve spravci souboru prejmenovat (protoze IDE ulozeni blokuje) a upravit soubor projektu. Pro rezervovana slova se da (stejne jako v jinych pripadech) pouzit escape znak &. Napr.:

Prejmenovany a upraveny soubor My.Initialization.Unit.pas:

Kód: Delphi [Vybrat]
  1. unit My.&Initialization.&Unit;
  2.  
  3. interface
  4.  
  5. type
  6.   TMyEnum = (
  7.     meFirst,
  8.     meSecond
  9.   );
  10.  
  11. implementation
  12.  
  13. end.

Upraveny soubor projektu:

Kód: Delphi [Vybrat]
  1. program Project1;
  2.  
  3. uses
  4.   My.&Initialization.&Unit in 'C:\My.Initialization.Unit.pas';
  5.  
  6. {$R *.res}
  7.  
  8. begin
  9.   ...
  10. end.

Konzumujici modul:

Kód: Delphi [Vybrat]
  1. unit Unit1;
  2.  
  3. interface
  4.  
  5. uses
  6.   My.&Initialization.&Unit;
  7.  
  8. ...
  9.  
  10. var
  11.   TheEnum: My.Initialization.Unit.TMyEnum; // tady uz neni nutne pouzivat escape
  12.  
« Poslední změna: 05-11-2018, 12:50:22 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2295
  • Karma: 123
    • Verze Delphi: D2007, XE3, DX10
Re:Initialization jako soucast nazvu unit
« Odpověď #2 kdy: 05-11-2018, 12:51:33 »
Nejspis ne. Leda po ulozeni pod nazvem bez rezervovanych slov soubor ve spravci souboru prejmenovat (protoze IDE ulozeni blokuje) a upravit soubor projektu. Pro rezervovana slova se da (stejne jako v jinych pripadech) pouzit escape znak &. Napr.:
Ty soubory nebudu vytvaret rucne v Delphi IDE -> Delphi kod se bude generovat automaticky na zaklade definic typu v XML. Mozna bych mohl udelat vnitrni kontrolu na rezervovane symboly a ty escapovat. Ale to uz mi prijde jednoduzsi dat do XML mapu namespacu a z Initialization udelat treba Init, protoze nez nekde opisu rezervovana slova, tak to ten mapping taky udelam.  Jeste o tom budu uzazovat, co je mi vic proti mysli: jestli &Initialization nebo explicitne prirazena nahrada treba Init

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1285
  • Karma: 56
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Initialization jako soucast nazvu unit
« Odpověď #3 kdy: 05-11-2018, 13:03:16 »
Jeste o tom budu uzazovat, co je mi vic proti mysli: jestli &Initialization nebo explicitne prirazena nahrada treba Init

Osobne bych byl spis pro Init. Jinak takovou, rekl bych staroanglictinou, se da napsat i initialisation.
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2295
  • Karma: 123
    • Verze Delphi: D2007, XE3, DX10
Re:Initialization jako soucast nazvu unit
« Odpověď #4 kdy: 05-11-2018, 13:14:54 »
Osobne bych byl spis pro Init. Jinak takovou, rekl bych staroanglictinou, se da napsat i initialisation.
Ja jsem to tady pred par dny zacal rucne implementovat, nez jsem dosel k zaveru, ze tahle ne a ze to budu muset stejne jako puvodni autori generovat automaticky, jinak bych se z toho zblaznil, tak jsem to na zkousku prejmenoval na &initialization a Delphi IDE to zda se nicemu nevadi a k memu prekvapeni to ani me nijak nevadi :-O 

Asi to udelam tak, ze pripravim interni escapovaci mechanismus a dam tam zatim jedinou konfliktni polozku initialization.

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1285
  • Karma: 56
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Initialization jako soucast nazvu unit
« Odpověď #5 kdy: 05-11-2018, 13:24:30 »
tak jsem to na zkousku prejmenoval na &initialization a Delphi IDE to zda se nicemu nevadi

IDE je to jedno, tedy az na ten ukladaci dialog. Kompilator je treba zmast :) Pomoci & se obecne escapuji rezervovana slova, napr.:

Kód: Delphi [Vybrat]
  1. type
  2.   TMyClass = class
  3.   ...
  4.   public
  5.     property &End read FEnd write FEnd;
  6.   end;

v kodu je pak mozne escape vynechat:

Kód: Delphi [Vybrat]
  1. var
  2.   MyClass: TMyClass;
  3. begin
  4.   ...
  5.   MyClass.End;
  6. end;
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 2295
  • Karma: 123
    • Verze Delphi: D2007, XE3, DX10
Re:Initialization jako soucast nazvu unit
« Odpověď #6 kdy: 05-11-2018, 14:21:19 »
Pomoci & se obecne escapuji rezervovana slova, napr.:
To je jasny, jen jsem necekal, ze bude jmeno unit xxx.yyy.xxx rozkladat na lexemy

Offline Delfin

  • Guru
  • *****
  • Příspěvků: 1285
  • Karma: 56
  • SW konzultant
    • Verze Delphi: 2009, Tokyo
Re:Initialization jako soucast nazvu unit
« Odpověď #7 kdy: 06-11-2018, 05:09:54 »
To je jasny, jen jsem necekal, ze bude jmeno unit xxx.yyy.xxx rozkladat na lexemy

Kazdou tu cast namespace v EMBT povazuji za identifikator (s nazvem jako My.123.Module tedy nepochodis). Proc to nevim. Ten nazev je z pohledu samotneho modulu porad jeden celek (do prvniho stredniku). Az z pohledu projektu je treba jej rozdelit pro unit scopes, coz rozhodne neni duvod branit mimo nepovolene znaky a dany format pouzit libovolny text.
« Poslední změna: 06-11-2018, 05:12:52 od Delfin »
I'm a soldier, so don't panic! I know the underground! I like WTFPL license! No more Google, go duck, go!

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Jméno: E-mail:
Ověření:
Křestní jméno zpěváka Gotta: