Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Sonstige Fragen zu Delphi (https://www.delphipraxis.net/19-sonstige-fragen-zu-delphi/)
-   -   Delphi [SynEdit] SingleLine Kommentare (https://www.delphipraxis.net/29633-%5Bsynedit%5D-singleline-kommentare.html)

hamZta 12. Sep 2004 11:30


[SynEdit] SingleLine Kommentare
 
Hi all,
hab ne Frage zu SynEdit. Und zwar bin ich gerade dabei, eine Grammarfile für SynEdit zu erstellen, aber es gelingt mir einfach nicht SingleLine Kommentare einzubauen.
Code:
TSynDreamSyn  {first Identifier is considered to be the Class Name }
tk             {second Identifier is considered to be the Identifier Prefix }
IdentStart '_', 'a'..'z', 'A'..'Z':: '_', '0'..'9', 'a'..'z', 'A'..'Z'::

TOKENTYPES
Identifier
Comment Foreground=clGreen
Space
String Foreground=clRed
VarIC Foreground=clBlue
Test Background=clRed|Style=[fsItalic]
|><|

KEYS VarIC
var
const
int
string
float
|><|

KEYS Test
SynEdit
lenny
|><|

CHARS

'A'..'Z', 'a'..'z', '_':: Ident
BeginProc
  fTokenID := IdentKind((fLine + Run));
  inc(Run, fStringLen);
  while Identifiers[fLine[Run]] do
    Inc(Run);
EndProc

|><|

ENCLOSEDBY
Comment,StdComment,#,#
String,String,","

|><|

SAMPLESOURCE
var string test = "This is a test"
var int test2 = 10
const float = 0.1
|><|
Das ist mal der gesamte Code der Grammarfile. In dem Tutorial, das SynGen beiliegt, steht beschrieben wie man Multiline Kommentare macht. Also dachte ich mir, das funktioniert doch sicherlich genauso wie bei der Stringdefinition (String,String,","), nur mit den Commentzeugs halt.
Aber jedesmal wenn ich dann mit SynGen die Pasfile erzeugt habe, und dann das ganze testen will, kommt dieser fehler in der Pasfile:
[Fehler] SynHighlighterDreamScript.pas(458): Ausdruck erwartet, aber 'ELSE' gefunden

und zwar in folgendem code:
Code:
procedure TSynDreamSyn.Next;
begin
  fTokenPos := Run;
  case fRange of
  else
    begin
      fRange := rsUnknown;
      fProcTable[fLine[Run]];
    end;
  end;
end;
Ich hoffe mir kann wer helfen :|

hamZta

Ultimator 12. Sep 2004 11:35

Re: [SynEdit] SingleLine Kommentare
 
Da steht doch
Delphi-Quellcode:
case frange of
else
begin
.
.
.
du musst doch was für frange angeben z.B.
Delphi-Quellcode:
case frange of
23:Machdas;
56:Machdies;

hamZta 12. Sep 2004 12:07

Re: [SynEdit] SingleLine Kommentare
 
das ist ja nur der code den syngen erzeugt, ich würde aber gerne das Problem mit Hilfe der Grammarfiles lösen.

Rudolf von Schwaben 15. Okt 2004 23:07

Re: [SynEdit] SingleLine Kommentare
 
Einzeilige Zitate sind auch mit Grammarfiles möglich. Du musst einfach bei "ENCLOSEDBY" ein neues Zitat (wie ein mehrzeiliges) hinzufügen und am Schluss ",multiline" weglassen. Wenn du aber nur das Zeilenende als Ende des Zitates haben möchtest musst du den von SynGen erzeugten Code ändern (in der Zitatfunktion vorspulen bis Zeilenende oder #0).

bigg 16. Okt 2004 01:51

Re: [SynEdit] SingleLine Kommentare
 
Wie soll den das Schema aussehen, dann erstell ich dir den Highlighter.


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:37 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