PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Eigene Sprache für Listingsumgebung



chris21
09-05-2007, 16:44
Hallo,
ich möchte in meiner Doku SystemC Codeausschnitte einfügen.
Also habe ich mir ein bischen selber was definiert:

\lstdefinelanguage{systemc}
{
keywords={sc\_uint,<,>,SC\_MODULE,
sc\_main,sc\_start,sc\_stop,
SC\_CTOR,SC\_THREAD,SC\_METHOD,SC\_CTHREAD,
sc\_port,sc\_in,sc\_out,sc\_inout,sc\_port
},
sensitive=false,
comment=[l]{ // }
}
Da SystemC auf C++ beruht, mache ich das immer so



\begin{lstlisting}[language=systemc,alsolanguage=c++,defaultdialect=g nu, ... ]



\lstset{
numbers=left,
stepnumber=1,
numbersep=5pt,
numberstyle=\tiny,
breaklines=true,
breakautoindent=true,
postbreak=\space,
tabsize=2,
%basicstyle=\ttfamily\footnotesize,
%basicstyle=\ttfamily\scriptsize,
basicstyle=\ttfamily\footnotesize,
showspaces=false,
showstringspaces=false,
extendedchars=true,
backgroundcolor=\color{white},
keywordstyle=\color{meinblau},
%keywordstyle=\color{meinblau}\bfseries,
%commentstyle=\color{meingruen}\itshape\small,
commentstyle=\color{meingruen}\itshape ,
stringstyle=\color{meinrosa},
frame=Tb
}


Leider macht er mir nun alle C++ und alls SystemC keywords in der gleichen Farbe.

Also ich möchte das die C++ und due SystemC keywords unterschiedliche Farben haben, habe es so pobbiert :



\lstdefinelanguage{systemc}
{
classoffset=0,
morekeywords={sc\_uint,<,>,SC\_MODULE,
sc\_main,sc\_start,sc\_stop,
SC\_CTOR,SC\_THREAD,SC\_METHOD,SC\_CTHREAD,
sc\_port,sc\_in,sc\_out,sc\_inout,sc\_port
},keywordstyle=\color{cyan}
sensitive=false,
comment=[l]{ // },
classoffset=0
}


jetzt macht er eben alle keywords beider Sprachen cyan :-(

mit classoffset = 1 bekomme ich eine viele Fehler.

*************************************************

Hab gleich noch eine Frage zum Listings Paket, ich habe noch andere Programmiersprachen, jetzt wird aber nur eine Listingsverzeichnis erstellt,
kann ich irgendwie für jede Sprache ein eigenes Listingverzeichniss erstellen ?

************************************************** *****
Vielen Dank,

Chris

voss
09-05-2007, 17:40
Hallo,
ich möchte in meiner Doku SystemC Codeausschnitte einfügen.


jetzt macht er eben alle keywords beider Sprachen cyan :-(

mit classoffset = 1 bekomme ich eine viele Fehler.

Hab gleich noch eine Frage zum Listings Paket, ich habe noch andere Programmiersprachen, jetzt wird aber nur eine Listingsverzeichnis erstellt,
kann ich irgendwie für jede Sprache ein eigenes Listingverzeichniss erstellen ?



mach ein komplettes Beipsiel, so haben doch nicht viele Lust sich erst einmal alles zum Testen zusammenzubasteln.

Du kannst für jede Sprache eine Option definieren oder aber mit \lstnewenvironment (->Doku)
eine eigene Umgebung definieren.

Herbert