/*
	This is the default style sheet for the output of code2html.
	It uses an Eclipse-like syntax highlighting.
    To make code2html use a different file, use the command line
    option --css foo.css or -S foo.css. 

	Author: Paul Haeder (haeder@cs.tu-berlin.de)
*/

.code pre {
	font-size: 11pt;
	margin: 0;
}

/* This is for the line numbers. */
span.linenumber {
	color: rgb(0,0,0);
	font-size: 10pt;
}

/* The following elements can occur in an Object Teams / Java source code. */

span.brace {
	color: rgb(0,0,0);
}

span.character {
	color: rgb(42,0,255);
}

span.comment {
	color: rgb(63,127,95);
}

span.doccomment {
	color: rgb(63,95,191);
}

span.identifier {
	color: rgb(0,0,0);
}

span.import {
	font-weight: bold;
	color: rgb(127,0,85);
}

span.keyword {
	font-weight: bold;
	color: rgb(127,0,85);
}

span.number {
	color: rgb(0,0,0);
}

span.string {
	color: rgb(42,0,255);
}

span.symbol {
	color: rgb(0,0,0);
}

/* The following elements can only occur in other types of source code. */

span.assignment {
	color: rgb(0,0,0);
}

span.character {
	color: rgb(0,0,0);
}

span.cont {
	color: rgb(0,0,0);
}

span.deletion {
	color: rgb(0,0,0);
}

span.depcont {
	color: rgb(0,0,0);
}

span.depline {
	color: rgb(0,0,0);
}

span.deptarget {
	color: rgb(0,0,0);
}

span.entity {
	color: rgb(0,0,0);
}

span.esc {
	color: rgb(0,0,0);
}

span.esccharacter {
	color: rgb(0,0,0);
}

span.escstring {
	color: rgb(0,0,0);
}

span.funchead {
	color: rgb(0,0,0);
}

span.funcheadarg {
	color: rgb(0,0,0);
}

span.funcheadname {
	color: rgb(0,0,0);
}

span.insertion {
	color: rgb(0,0,0);
}

span.intmacro {
	color: rgb(0,0,0);
}

span.libfunc {
	color: rgb(0,0,0);
}

span.linespec {
	color: rgb(0,0,0);
}

span.macro {
	color: rgb(0,0,0);
}

span.predefidentifier {
	color: rgb(0,0,0);
}

span.predeftype {
	color: rgb(0,0,0);
}

span.preproc {
	color: rgb(0,0,0);
}

span.regex {
	color: rgb(0,0,0);
}

span.separator {
	color: rgb(0,0,0);
}

span.text {
	color: rgb(0,0,0);
}

span.type {
	color: rgb(0,0,0);
} 