Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Algorithmen, Datenstrukturen und Klassendesign (https://www.delphipraxis.net/78-algorithmen-datenstrukturen-und-klassendesign/)
-   -   Regular Expressions & Verilog NetzListe (https://www.delphipraxis.net/177565-regular-expressions-verilog-netzliste.html)

bernhard_LA 14. Nov 2013 07:58

Regular Expressions & Verilog NetzListe
 
ich muss den Inhalt einer Verilog Netzliste analysieren, und möchte ( muss) unser existierendes SoftwareModul zum Einlesen der Informationen vereinfachen & flexibler gestallten.
Helfen mir REGULAR EXPRESSIONS bei dieser Aufgabe, ich sehe den Weg hier noch nicht .... ?????


Folgende Beispieldatei mit einigen Bauelementen:
Delphi-Quellcode:

// BIPOLAR PNP
module NPN (B,E,C);
input B,E;
Output c;
endmodule

// BIPOLAR NPN
module NPN (B,E,C);
input B,E,C;
endmodule

//
// CMOS NMOS
// noch eine weitere Zeile mit Kommentaren
//
module NMOS (S,D,G);
input S;
Output D;
Inout G;
endmodule

// CMOS PMOS
module PMOS (S,D,G);
input S,D,G;
endmodule
Info zu Verilog ( )http://de.wikipedia.org/wiki/Verilog:
Ein Modul wird in meinem Anwendungsfall über einen KommentarBlock am Anfang ( Anzahl der Zeilen flexibel ) beschrieben um Anschluss kommen die Verilog Schlüsselwörter module und endmodule, Die Pins und weitere Informationen stehen im TextBlock dazwischen.

Sir Rufo 14. Nov 2013 08:09

AW: Regular Expressions & Verilog NetzListe
 
Den Weg mit RE sehe ich hier auch nicht, aber mit einem Parser kommst du da weiter

jobo 14. Nov 2013 08:16

AW: Regular Expressions & Verilog NetzListe
 
Spielt Groß-/Kleinschreibung eine Rolle? Scheinbar nicht so wirklich.
Wird der Kommentar benötigt? Korreliert er mit dem Wort nach module bzw wäre das hinreichend(Kommentar weglassen)? Im ersten Fall gibt es ein mismatch. Copy/Paste Fehler?
Was bedeutet analysieren? Zählen? ... ?
Was kommt sonst noch zwischen module und endmodule?

Ich mag ja SQL. Wahrscheinlich würde ich es in eine Tabelle einlesen -Kommentar, Leerzeilen auslassen
-Wort nach module als (mehrfach)Key
-ggF. (innere) Sequenz Spalte zur Sortierung
Code:
|key|sort|content  |
=====================
|NPN |1|(B,E,C);   |
|NPN |2|input B,E; |
|NPN |3|Output c;  |
|NPN |1|(B,E,C);   |
|NPN |2|input B,E,C;|
|NMOS|1|...        |
Dann mit SQL "analysieren"


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