Delphi-Version: XE5
Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Hallo Community,
Warum gibt der XE5-Compiler hier diese Warnung aus?
Delphi-Quellcode:
Compilerwarnung: Erwartet: ')' aber ','enthalten . . .
Type
DoubleDouble = Record public X: Array [0..1] of Double; . . . End; . . . Type _DoubleDoubleHelper = Record Helper for DoubleDouble Const Pi: DoubleDouble = (X: (3.141592653589793116E+00, 1.224646799147353207E-16)); . . . End; Fehlerhaft wird das schließende Komma markiert in dieser Zeile:
Delphi-Quellcode:
:wall:
(X: (3.141592653589793116E+00,
Was ist hier falsch und wie kann ich den Fehler beheben? Danke für Eure Hilfe! Gruß, Andreas [EDIT] Den von mmw in #6 bemerkten Tippfehler habe ich gerade korrigiert. :oops: |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
zähle mal die offenen und geschlossenen Klammern. Fällt was auf?
|
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Weil diese Klammer falsch ist?
In die Klammer muß ja ein zweiter Wert für das Array rein. :wink: Ach ja, nach dem X kommt in dem Record nichts mehr, also sagt dir diese Meldung, dass dort kein Komma kommen kann, weil der Record zu Ende ist. PS: Es gibt eine Konstante für Pi. @venice2: Zählen hilft hier nur bedingt. Ja, die erste Klamme beim )); stimmt nicht (obwohl sie ja eigentlich richtig ist), aber es löst nicht dieses Problem, dass die Klammer zu früh zu ging. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
|
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Der obige Code ist Teil der Bibliothek
Delphi-Quellcode:
und diese treibt mich in den Whnsinn. . . https://entwickler-ecke.de/topic_Hil...7d3d26ea45cba5
Neslib.MultiPrecision.pas
Dort bin schon seit 2 Wochen mit Sebastian Jänickes tatkräftiger Unterstützung auf der Fehlersuche. Eigentlich wollte ich schon gestern kapitulieren, doch ich kann die Finger doch nicht davon lassen. Weil ich auf der Suche nach verschleppten Fehlern bin, erschien mir diese Art der Konstanten-Deklaration in der Bibliothek verdächtig. Möglicherweise wird dieses Konstrukt in neueren Delphi-Versionen anders gehandhabt als in XE5 oder XE6. Was wäre die korrekte Konstanten-Deklaration, die auch XE5 richtig deutet? Andreas |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
hallo,
Delphi-Quellcode:
so war's glaube ich gemeint. siehe #3
Type
_DoubleDoubleHelper = Record Helper for DoubleDouble Const Pi: DoubleDouble = (X: (3.141592653589793116E+00,1.224646799147353207E-16)); end; Gruß |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Wie esagt, nicht das Komma, sondern die Klammer davor ist falsch. (die Fehlermeldung "Anzahl" im Array ist falsch, kommt wohl erst später)
|
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Gruß, Andreas |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Übrigens: Es gibt noch eine zweite (neben vielen!) Warnung zum obigen Eintrag, vielleicht ist die hilfreich bei der Lösung der Problematik: "undeklarierter Bezeichner: 'X' in Zeile..." Das ist für mich genau so unverständlich. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Damit ist mein Post #8 ist hinfällig... :oops: |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
[EDIT] Das Wort Fehler erscheint zwar im Struktur-Fenster, der Compiler setzt sich aber munter darüber hinweg. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Ja, Error-Insight und Compiler sind unabhängig. Und leider arbeiten sie an vielen Stellen nicht gleich. (hier wird was eingebaut, aber drüben macht man es anders oder vergisst es einfach)
Durch das neue LSP besteht aber die Hoffnung, dass Beides (und Anderes) irgendwann in 200 Jahren mal den selben Code verwenden und auch gleiche Ergebnisse liefern. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
2 offene und 3 geschlossene Klammern das konnte es eigentlich nicht sein. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
@ venice2:
Sorry, ich sehe vor lauter Bäumen den Wald nicht mehr. Beim "Formatieren" habe ich wohl eine überflüssige Klammer eingefügt. :oops: [EDIT] Abder das Problem bleibt bestehen! |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
leeres projekt deinen record addiert kompiliert ohne Fehler oder Warnung. 10.4.2
Delphi-Quellcode:
unit Unit1;
interface uses Winapi.Windows, Winapi.Messages, System.SysUtils, System.Variants, System.Classes, Vcl.Graphics, Vcl.Controls, Vcl.Forms, Vcl.Dialogs; Type DoubleDouble = Record public X: Array [0..1] of Double; End; _DoubleDoubleHelper = Record Helper for DoubleDouble Const Pi: DoubleDouble = (X: (3.141592653589793116E+00, 1.224646799147353207E-16)); End; type TForm1 = class(TForm) private { Private-Deklarationen } public { Public-Deklarationen } end; var Form1: TForm1; implementation {$R *.dfm} end. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Liste der Anhänge anzeigen (Anzahl: 1)
Danke Emil,
ich glaube es liegt wohl an XE5: s. HardCopy.jpg im Anhang. Gruß, Andreas |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Schallte mal CodeInsight unter Tools\Optionen aus.
Zur Vervollständigung.. mein Shot. Du hast keinen Fehler (Das Projekt sollte kompilieren) CodeInsight spinnt bei dir rum. Diese angebliche Fehler Hierarchie wird von CodeInsight im Structure Fenster erstellt das kannst du getrost ignorieren bzw. Schalte CodeInsight aus. Siehe dazu! Zitat:
EDIT: Siehe hier! |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Danke Emil, die Fehlermeldung durch CodeInsight ist verschwunden! :thumb:
Allerdings bleibt mein ursprüngliches Problem mit der Bibliothek leider weiterhin bestehen. Mein Tipp waren etliche derartige Vorbelegungen typisierter Konstanten-Arrays in der MPA-Bibliothek. Dann muß ich wohl dem Phantom weiter hinterherjagen... :wall: Vieleicht mache ich dazu demnächst doch ein neues Topic auf, oder ich steige aus Verzweiflung doch auf eine aktuelle Delphi-Version um. Gruß, Andreas PS: Danke für alle Beiträge! |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
[edit]
Also der Compiler sagt nun nichts mehr? [/edit] Ob da in den Class/Record-Helpern die Konstanten schon richtig funktionieren? Eine Dummy-Klasse oder ein Record (siehe TColorIrgendwas) sollte aber schon gehn. Ich hätte die Konstante in den Record gelegt, aber ich denke mal das funktioniert nicht, mit dem eigenem Typen (der dort ja noch nicht fertig definiert ist). Bei Klassen geht es aber sehr gut. Hast diese Konstante mal ganz traditionell probiert? (ohne Record/Klasse/Helper drumrum) |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Zitat:
|
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Die anderen Fehler kamen vom stupiden CodeInsight = <> Compiler |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Zitat:
Das Problem, was ich momentan verfolge ist, daß ein Funktionsaufruf z. B. ArcTan2(..) aus den C-Object-Files einmal, zweimal hintereinander korrekt funktioniert, beim 3. Mal kommt ein falsches Ergebnis raus und beim 4. Mal stürzt es ganz ab weil alle Felder des Records -NaN sind. Manchmal sah ich neben dem DoubleDouble-X-Array auch noch ein namenloses Record-Feld auftauchen und es sah so aus, daß der Wert bei jedem Aufruf der Funktion im Record um 1 weiterspringt, bis ins Leere gegriffen wird. Aber dieses Verhalten kann ich nicht immer reproduzieren. Ich probiere noch weiter, und mache dazu später ein neues Topic auf. Danke für Eure Hilfe! Gruß, Andreas |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Zitat:
Andreas |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
CodeInsight sind die Infos/Hints zum Code.
ErrorInsight ist die Fehlermarkierung/-info. Und ja, ErrorInsight hatte schon immer mehr oder weniger Probleme und zeigt auch gern mal was Falsches an. Manchmal wird es besser, in der nächsten Version, aber 100% richtig geht es seit Jahrzehnten nicht mehr. Mit dem neuen LSP gibt es nun Hoffnung, dass es irgendwann mal fast richtig arbeiten könnte. (wenn ErrorInsight auch das LSP benutzt) Viele nervt das ErrorInsight so sehr, dass sie es abschalten. |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Das vergleiche ich gerne mit Word oder Openoffice:
Nicht alles, was da unterkringelt ist, ist falsch. Die Software meint das zwar. Ja und? Was der Kompiler als falsch bemängelt ist falsch, sonst nicht. Egal wer sonst trotzdem behauptet, es sei falsch. Was der Kompiler nicht bemägelt ist richtig. Egal wer sonst trotzdem behauptet, es sei falsch. Was der Kompiler als falsch bemängelt ist falsch. Egal wer sonst trotzdem behauptet, es sei richtig. Und wenn Word oder OpenOffice zuviel als falsch bemängeln, was eindeutig richtig ist, wird die Rechtschreibprüfung eben ausgeschaltet. Der Kompiler weiß was richtig und was falsch ist. Die anderen stellen nur mehr oder weniger belegbare oder nicht belegbare Behauptungen auf, müssen aber nie den Beweis der Richtigkeit ihrer Aussage erbringen ;-) |
AW: Unverständliche Compilerwarnung – Erwartet: ')' aber ','enthalten
Daher der vermutliche Vorteil vom LSP.
Da ist es dann so, als wenn ein Hintergrundcompilier auf die Unit losgeht und dessen Ergebnisse dann vom ErrorInsight verwendet werden. Und wenn Complier und ErrorInsight den selben Code (LSP) verwenden, müssten da für Compilier und ErrorInsight eben auch die selben Ergebnisse rauskommen. (wenn alles richtig implementiert ist) |
Alle Zeitangaben in WEZ +1. Es ist jetzt 19:17 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz