![]() |
RAD 2009: Komische Auffassung von Syntax...
Hab gerade ein Programm entwanzt und bin über einen Prozeduraufruf gestolpert:
Delphi-Quellcode:
Das kompiliert :shock: , lustig, gelle?
Procedure DoProcedure (aParameter : TSomeType);
Begin End; ... DoProcedure (MyParameter,); // <--- man beachte das Komma .. Hier nochmal ein komplettes 'Projekt'
Delphi-Quellcode:
:wiejetzt: Ich find das ja nett, aber was soll das? Hat das irgendeinen Sinn?
program Project1;
{$APPTYPE CONSOLE} uses SysUtils; Procedure Foobar (s : String); Begin Writeln(s); End; begin try Foobar('Hello World!',); // <--- Möööp except on E:Exception do Writeln(E.Classname, ': ', E.Message); end; end. |
Re: RAD 2009: Komische Auffassung von Syntax...
Nö, aber es stört beim parsen des Codes nicht. Und es wurde anscheinend auch nie implementiert, dass das ein Fehler ist.
btw: Darüber gabs schon Threads :zwinker: Edit: Und das ist nicht erst seit 2009 so. |
Re: RAD 2009: Komische Auffassung von Syntax...
Turbo Delphi 2006 meckert auch nicht, unterkringelt es aber rot als Fehler ;)
Delphi 6 hingegen meldet "Zuviele Parameter" ;) |
Re: RAD 2009: Komische Auffassung von Syntax...
@Clemens L.: Ist schon komisch, oder? Ein Parser (Syntaxchecker), der völlig losgelöst von einem Compiler agiert ... :wall:
@sirius: Das dachte ich mir schon, aber wonach hätte ich suchen können/müssen? Ach, egal. Ist halt lustg. |
Re: RAD 2009: Komische Auffassung von Syntax...
Wird wohl genau aus dem selben Grund so sein, wie man auch das Semikolon ; vor einem End weglassen kann
Delphi-Quellcode:
Semikolons (und dann auch wohl Kommata) sind halt nur Seperatoren, und nicht Terminatoren (wie unter C++) - so meine ich das mal gelesen zu haben.
procedure WhatEver;
begin Eins; Zwei; Drei end; |
Re: RAD 2009: Komische Auffassung von Syntax...
Zitat:
Delphi 2009 Update 1 und 2 installiert. |
Re: RAD 2009: Komische Auffassung von Syntax...
Delphi-Quellcode:
Compiliert unter 200x auch. Unter Delphi 7 hingegen nicht :zwinker:
procedure WhatEver;
begin 0; end; |
Re: RAD 2009: Komische Auffassung von Syntax...
Hallo,
könnte es sein, dass die neueren Delphiversionen auch unnütze (leere) Prozeduren, einschließlich ihrer Aufrufe, wegoptimieren?
Delphi-Quellcode:
ist ja irgendwie sinnfrei und
Procedure nixdamachich(boooeehhh : Integer);
begin end;
Delphi-Quellcode:
in diesem Zusammenhang ebenso. Und wenn nixdamachich weg kann, dann dürften die sinnigsten und unsinnigsten Paramter auch herzlich wenig Bedeutung haben. Wofür dann noch deren syntaktische Korrektheit prüfen?
...
nixdamachich(12345); ... Ist jetzt nur mal so ein bisserl Spekulatius in die Runde geworden. |
Re: RAD 2009: Komische Auffassung von Syntax...
Zitat:
Zitat:
|
Re: RAD 2009: Komische Auffassung von Syntax...
Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:40 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz