Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi Frage zu SyntaxHighlighting & Grammarfile (https://www.delphipraxis.net/13981-frage-zu-syntaxhighlighting-grammarfile.html)

MikeC 30. Dez 2003 11:50


Frage zu SyntaxHighlighting & Grammarfile
 
Hi

ich habe mal eine Frage zu den Grammarfiles, die ich schreiben kann um einen SyntaxHighlighter für SynEdit zu schrieben.

Ich möchte gerne einzelne Zeichen (+ - . , ( ) usw) highlighten lassen. Prinzipiell kann ich doch im Grammafile ein Tokentype SYMBOL definieren und die Symbole dann praktisch als Keyword angeben

also etwa so
Code:

TOKENTYPES
...
...
Symbol Foreground=clRed
...
|><|

KEYS Symbol
.
,
-
(
)
{
}
|><|
Wenn ich das aber mache und das Grammarfile dann mit SynGen compiliere, bekomme ich zwar eine lauffähige Delphi-Unit aber beim Syntaxhighlighting wird dann nur das erste Symbol in der Liste berücksichtigt. (im Beispiel oben wäre das der Punkt). Kann mir jemand verraten warum? :gruebel:

MrKnogge 30. Dez 2003 11:56

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Ich hab zwar bisher noch keine eigene Highlighter erstellt,
aber könnte es sein das man entweder vor jedes Zeichen "KEYS Symbol" schreiben,oder aber die ganzen Zeichen irgendwie einklammern muss ?

Alibi 30. Dez 2003 12:33

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Liste der Anhänge anzeigen (Anzahl: 1)
Ich hab mal einen Highlighter für BrainFuck geschrieben. Den hab ich mal angehängt. War ne Menge Bastelarbeit, SynEdit kann ganz gut rumzicken. :)
+-,.[]<>! werden fett dargestellt, {} rot, () blau und der rest grau.
Als Basis hatte ich auch so ein Grammarfile genommen, musste aber per Hand einiges ändern/hinzufügen.

MikeC 30. Dez 2003 12:43

Re: Frage zu SyntaxHighlighting & Grammarfile
 
thx werd's mal testen :dp:

MikeC 30. Dez 2003 13:02

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Hmm... Also bei mir funktioniert der BrainFuck Highlighter nicht.
Alles, was in {} steht wird zwar rot angezeit aber bei den Symbolen werden nur die eckigen Klammern [] fett gedruckt.

mirage228 30. Dez 2003 13:18

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Welche Version von SynEdit hast du?

mfG
mirage228

MikeC 30. Dez 2003 13:23

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Version 1.04
was ist denn die neuste, die mit Delphi 7 funktioniert?

mirage228 30. Dez 2003 13:25

Re: Frage zu SyntaxHighlighting & Grammarfile
 
die neueste ist SynEdit 1.1

http://synedit.sourceforge.net

Dort kannst du auch die aktuellste Version aus dem CVS laden^^

mfG
mirage228

Alibi 30. Dez 2003 13:27

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Also hier funktioniert das Ding, auch SynEdit 1.04. Siehe Freewaresparte -> BrainFuckIDE.

MikeC 30. Dez 2003 13:41

Re: Frage zu SyntaxHighlighting & Grammarfile
 
Ich weiß nicht woran es lag, aber ich habe jetzt auf jeden fall mal ein GrammarFile, das so halbwegs macht, was ich will. Das ganze sieht so aus

Code:
TSynTHXHighlighter  {first Identifier is considered to be the Class Name }
tk             {second Identifier is considered to be the Identifier Prefix }
Sensitive '+','-','[',']','.',',',';','{','}',')','(','0'..'9'::
IdentStart '_', 'a'..'z', 'A'..'Z':: '_', 'a'..'z', 'A'..'Z'::

TOKENTYPES
Identifier Foreground=clBlack
IncFile Foreground=clRed
Symbol ForeGround=clRed
Key Style=[fsBold]|Foreground=clBlue
Comment Foreground=clNavy|Background=clAqua|Style=[fsBold, fsItalic]
String Foreground=clTeal
Number Foreground=clPurple|Style=[fsBold]
|><|

KEYS
new
for
int
up
low
array
of
Export
|><|

KEYS Symbol
+
-
.
,
[
]
>
<
(
)
{
}
].
);
;
|><|

KEYS Number
0
1
2
3
4
5
6
7
8
9
|><|

CHARS

'+','-','[',']','.',',',';','{','}','(',')','0'..'9':: Ident
BeginProc
  fTokenID := IdentKind((fLine + Run));
  inc(Run, fStringLen);
  while Identifiers[fLine[Run]] do
    Inc(Run);
EndProc

|><|

ENCLOSEDBY

IncFile,IncFile,<,>
Comment,CStyleComment,/*,*/,Multiline
Comment,BraceComment,\,\,Multiline
String,String,","
|><|
Allerdings gibt es noch ein paar sachen, die mir nicht gefallen: Die KEywords werden nicht blau geschrieben, die Zahlen werden nur dann in clPurple geschrieben, wenn sie einzeln stehen und wenn eine Zahl in eckigen Klammern steht (also so wie bei nem Delphi-Array) werden die Klammern und die Zahl schwarz geschrieben. Wie kann ich das beheben?


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