Forum: www.mikrocontroller.net Verilog Syntaxhighlighter; automatische Verlinkung


von Günter -. (guenter)


Lesenswert?

Hallo,

welcher Aufwand steht denn dahinter einen neuen Syntaxhighlighter hinzu 
zufügen?

Ich habe gerade angefangen einen Verilog Artikel zu schreiben und 
nutze für die Beispiel den Syntaxhighlighter von C. Leider passt der 
nicht immer und es währe schön einen für Verilog zu haben.

Dann würde mich auch interessieren wie die automatische Verlinkung auf 
Artikel funktioniert? So wird z.B. das Wort VHDL automatisch verlinkt. 
Das Wort Verilog aber nicht. (Oben habe ich den Link per Hand 
eingefügt).

Gruß,

Günter

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Günter .. wrote:
> welcher Aufwand steht denn dahinter einen neuen Syntaxhighlighter hinzu
> zufügen?

Das Wiki verwendet GeSHi (http://qbnz.com/highlighter/), eine von GeSHi 
unterstütze Sprache hinzuzufügen ist kein Problem. Verilog wird aber 
leider noch nicht unterstützt.

> Ich habe gerade angefangen einen Verilog Artikel zu schreiben

Sehr gut!

> Dann würde mich auch interessieren wie die automatische Verlinkung auf
> Artikel funktioniert? So wird z.B. das Wort VHDL automatisch verlinkt.
> Das Wort Verilog aber nicht. (Oben habe ich den Link per Hand
> eingefügt).

Jetzt wird auch Verilog verlinkt.

von Günter -. (guenter)


Angehängte Dateien:

Lesenswert?

Andreas Schwarz wrote:
> Günter .. wrote:
>> welcher Aufwand steht denn dahinter einen neuen Syntaxhighlighter hinzu
>> zufügen?
>
> Das Wiki verwendet GeSHi (http://qbnz.com/highlighter/), eine von GeSHi
> unterstütze Sprache hinzuzufügen ist kein Problem. Verilog wird aber
> leider noch nicht unterstützt.
>

Danke für die Information. Ich hab mich mal hingesetzt und basierend auf 
bestehende Syntaxhighlighter einen für Verilog geschrieben.

Er ist noch nicht perfekt in Bezug auf regular expression. Bei Verilog 
gibt es Zahlenspezifikationen in der Form 4'b0010xz. Um das zu erkennen 
werde ich noch ein wenig mehr die Dokumentation durchstöbern müssen.

Auf jeden Fall erkennt der angehängte Highlighter die Verilog 
Schlüsselwörter, Kommentare, Zahlen, Operatoren, System Tasks/Funktionen 
und Makros.

Getestet habe ich das ganze mit einem simplen Script das auf der GeSHi 
Webseite gezeigt ist. Anfangs habe ich einige Warnungen erhalten weil 
einige arrays nicht gefüllt waren, bei dem angehängten Skript ist das 
aber alles behoben.

Zum Testen habe ich die SVN-Version von GeSHi runtergeladen. Da sind nun 
zwei Verzeichnisse, einmal geshi-1.0.X und einmal geshi-src. Ich habe 
den Syntaxhighlighter für gehsi-1.0.X geschrieben. Ich vermute mal das 
ist auch die Version die du nutzt?

Vielleicht kannst du das mit einbinden?

Ich werde noch versuchen die regular expression zum Laufen zu bringen 
und dann auch das Skript dem GeSHi Projekt zur Verfügung stellen.

Gruß,

Günter

von Christoph db1uq K. (christoph_kessler)


Lesenswert?

Ich finde bei geshi keine AVR-Syntax, ist das hier vorhanden? mal 
probieren
1
.MACRO smac32
2
  muls  coefh,datah  ; Signed multiply, coefficient high byte and data high byte
3
  add  accu2,MltLo  ; Add low byte of result to accumulator byte 2
4
  adc  accu3,MltHi  ; Add with carry high byte of result to accumulator byte 3
5
  mul  coefl,datal  ; Unsigned multiply, coefficient low byte and data low byte
6
  add  accu0,MltLo  ; Add low byte of result to accumulator byte 0
7
  adc  accu1,MltHi  ; Add with carry high byte of result to accumulator byte 1
8
  adc  accu2,Zero  ; Add carry to accumulator byte 2
9
  adc  accu3,Zero  ; Add carry to accumulator byte 3
10
  mulsu  coefh,datal  ; Signed-unsigned multiply, coefficient high byte and data low byte 
11
  sbc  accu3,Zero  ; Sign extention
aha
Kommentare erkennt es, aber keine Mnemonics

zum Editor Cream/vim habe ich eine AVR.vim gefunden, der kennt auch VHDL 
und Verilog, auch Scilab, aber kein Octave

von Christoph db1uq K. (christoph_kessler)


Angehängte Dateien:

Lesenswert?

Die ersten beiden Seiten sind das Syntax-File für Verilog auf VIM, 
vielleicht hilfts was für die Erstellung des geshi-Files

von Andreas S. (andreas) (Admin) Benutzerseite


Lesenswert?

Günter: Danke, hab es installiert. Funktioniert einwandfrei.

Christoph: Das Forum nutzt eine andere Software für das Syntax 
Highlighting als das Wiki. Ich möchte das irgendwann mal beides zusammen 
auf highlight (http://www.andre-simon.de/) umstellen.

von Günter -. (guenter)


Lesenswert?

Christoph Kessler wrote:
> Die ersten beiden Seiten sind das Syntax-File für Verilog auf VIM,
> vielleicht hilfts was für die Erstellung des geshi-Files

Ja, auf die Datei habe ich mich auch gestützt wie ich das geshi-File 
erzeugt habe. Eigentlich sollte ich da noch mal reinschauen, denn da 
muss ja auch das Problem mit den Zahlen irgendwie gelöst sein.

In dem Verilog-File gibt es da einen KEYWORDS-Bereich. Der ist 
Unterteilt in 4 Gruppen. Jeder Gruppe kann man dann im STYLES-Bereich 
eine Farbe zuordnen.

So ist das eigentlich ziemlich einfach eine neue Sprache einzubinden.

von Günter -. (guenter)


Lesenswert?

Andreas Schwarz wrote:
> Günter: Danke, hab es installiert. Funktioniert einwandfrei.

Das ist gut. Verstehe ich das richtig das der Highlighter jetzt nur für 
den Wiki funktioniert, aber nicht für das Forum?

Eine Sache die mir aufgefallen ist. Im Wiki scheinen weniger Farben 
genutzt werden als eigentlich im geshi-File spezifiziert sind?

Z.B. habe ich den Verilog-Code:
1
clk = ~clk;

Was bei mir folgenden HTML-Code ergibt:
1
clk <span style="color: #5D478B;">=</span> <span style="color: #5D478B;">~</span>clk;

Im Wiki auf der Verilog Seite ist das nur:
1
clk = ~clk;

Was eigentlich sein sollte ist das '=' und '~' in einer andere Farbe 
erscheinen sollten. Strings sollten eigentlich Magenta sein, werden aber 
im Wiki nur schwarz dargestellt.

von Günter -. (guenter)


Angehängte Dateien:

Lesenswert?

OK, Hier noch mal eine neue Version des Verilog Highlighters. 
Hinzugekommen sind jetzt noch zwei regular expression. Eins davon sucht 
nach Zahlen der Form 4'b00xz und das Zweite ist für Zeiten der 
'timescale-Direktive zuständig. Dann habe ich noch weitere Macro-Wörter 
hinzugefügt.

Die Version werde ich jetzt auch dem GeSHi-Projekt senden.

Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.