Ich möchte Source Code mit dem Paket Listing (lstlisting) setzen. Ich verwende Annotationen mit Schlüsselworten in Source Code Kommentaren. Die Annotationssprache ist dem Paket bekannt (ACSL). Leider werden diese Schlüsselworte im Kommentar nicht erkannt und nicht entsprechend gesetzt. Ich habe es auch schon mit der Option "alsolanguage" versucht, ohne Erfolg.

Wie kann ich Listing dazu bringen, auch die Annotationen korrekt umzusetzen?

Unten ein Beispiel. Die Schlüsselworte sind "behavior", "assumes", etc.

Vielen Dank im Voraus

Open in writeLaTeX
//@ ghost unsigned int no_btn_press = 0;
/*@
@ behavior FewPresses:
@ assumes no_btn_press < 2;
@ ensures no_btn_press == \old(no_btn_press) + 1;
@ ensures \result == 0;
@ behavior EnoughPresses:
@ assumes no_btn_press >= 2;
@ ensures no_btn_press == 0;
@ ensures \result != 0;
@ complete behaviors FewPresses,EnoughPresses;
@ disjoint behaviors FewPresses,EnoughPresses;
@*/
char btnpress(void);
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

gefragt 18 Mai '14, 15:48

dordow's gravatar image

dordow
113611
Akzeptiert-Rate: 0%

bearbeitet 18 Mai '14, 20:35

cgnieder's gravatar image

cgnieder
22.1k253463

Ist es nicht normal, dass Schlüsselwörter in Kommentaren nicht formatiert werden? Oder verstehe ich die Frage falsch?

(18 Mai '14, 20:40) cgnieder

Mein Bauchgefühl sagt auch, Kommentare sollten in ihrer Gestaltung zurücktreten (hellgrau z.B.), damit die wichtige Syntax-Hervorhebung des echten Codes noch besser erkennbar ist. Formatierung von Schlüsselwörtern in Kommentaren lassen sie "aktiv" aussehen, doch sie sind ja wirkungslos, fände ich irritierend.

(18 Mai '14, 20:57) stefan ♦♦

Du kannst Dir den Stil auch komplett selbst definieren. Hier einmal mit dem Stil von openETCS, was Du Dir ja modifizieren kannst:

Open in writeLaTeX
Code, hier editierbar zum Übersetzen:
\documentclass[preview,border=5]{standalone}
\usepackage{listings}
\usepackage{xcolor}
%\definecolor{darkred} {rgb}{0.60,0.00,0.00}
\definecolor{coACSLBehavior} {rgb}{0.30,0.00,0.00}
\definecolor{coASCL} {rgb}{0.00,0.10,0.00}
\definecolor{coASCLKeyword} {rgb}{0.00,0.10,0.10}
\definecolor{darkgreen} {rgb}{0.00,0.40,0.00}
%\definecolor{red} {rgb}{0.98,0.00,0.00}
\definecolor{darkblue} {rgb}{0.00,0.00,0.60}
%\definecolor{lightblue} {rgb}{0.60,0.80,1.00}
%\definecolor{lightred} {rgb}{1.00,0.60,0.60}
\definecolor{coCKeyword} {rgb}{0.00,0.00,0.60}
\lstdefinestyle{acsl-block}{
emph=[1]{assert, assumes, assigns, axiom, axiomatic, decreases, ensures,
ghost, invariant, lemma, logic, loop, predicate,
reads, requires, variant},
emphstyle=[1]{\bfseries\color{coASCLKeyword}},
emph=[2]{behavior, behaviors, complete, disjoint, for:},
emphstyle=[2]{\bfseries\color{coACSLBehavior}},
emph=[3]{typedef, int, char, integer, real, bool, size_type, value_type,
uint8_t, uint64_t},
emphstyle=[3]{\bfseries\color{coCKeyword}},
escapeinside={//`}{`//},
morecomment=*[l][\color{coASCL}]{//@},
morecomment=*[s][\color{coASCL}]{/*@}{*/},
moredelim=*[is][\bfseries]{|*}{*|},
%emphstyle=[3]{\ttfamily}
}
\begin{document}
\begin{lstlisting}[style=acsl-block]
//@ ghost unsigned int no_btn_press = 0;
/*@
@ behavior FewPresses:
@ assumes no_btn_press < 2;
@ ensures no_btn_press == \old(no_btn_press) + 1;
@ ensures \result == 0;
@ behavior EnoughPresses:
 
הההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההההה
XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX

Listing

Permanenter link

beantwortet 18 Mai '14, 19:14

stefan's gravatar image

stefan ♦♦
18.4k163148
Akzeptiert-Rate: 50%

Das ist genau was ich brauchte, vielen Dank.

(18 Mai '14, 21:52) dordow
Deine Antwort
[Vorschau ausblenden]

Folgen dieser Frage

Per E-Mail:

Wenn sie sich anmelden, kommen Sie für alle Updates hier in Frage

Per RSS:

Antworten

Antworten und Kommentare

Frage-Themen:

×23

gestellte Frage: 18 Mai '14, 15:48

Frage wurde gesehen: 8,714 Mal

zuletzt geändert: 18 Mai '14, 21:52