1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58
|
@c Generator: GNU source-highlight, by Lorenzo Bettini, http://www.gnu.org/software/src-highlite
@example
@b{#ifdef} HAVE_CONFIG_H
@b{#include} @t{"config.h"}
@b{#endif}
@b{#include} @t{<iostream>}
@b{#include} @t{"srchilite/langdefmanager.h"}
@b{#include} @t{"srchilite/regexrulefactory.h"}
@b{#include} @t{"srchilite/sourcehighlighter.h"}
@b{#include} @t{"srchilite/formattermanager.h"}
@b{#include} @t{"srchilite/stylefileparser.h"} @r{@i{// for parsing style files}}
@b{#include} @t{"styleformatterfactory.h"}
@b{using} @b{namespace} std;
@b{#ifndef} DATADIR
@b{#define} DATADIR @t{""}
@b{#endif}
@b{int} main() @{
srchilite::RegexRuleFactory ruleFactory;
srchilite::LangDefManager langDefManager(&ruleFactory);
@r{@i{// we highlight C++ code for simplicity}}
srchilite::SourceHighlighter highlighter(langDefManager.getHighlightState(
DATADIR, @t{"cpp.lang"}));
@r{@i{// our factory for our formatters}}
StyleFormatterFactory factory;
@r{@i{// the background color for the document (not used here)}}
string docBgColor;
@r{@i{// let's parse the default.style and create our formatters}}
srchilite::StyleFileParser::parseStyleFile(DATADIR, @t{"default.style"},
&factory, docBgColor);
@r{@i{// now we need to fill up the formatter manager with our formatters}}
srchilite::FormatterManager formatterManager(StyleFormatterPtr(
@b{new} StyleFormatter));
@b{for} (StyleFormatterMap::const_iterator it = factory.formatterMap.begin(); it
!= factory.formatterMap.end(); ++it) @{
formatterManager.addFormatter(it->first, it->second);
@}
highlighter.setFormatterManager(&formatterManager);
string line;
@r{@i{// we now highlight a line a time}}
@b{while} (getline(cin, line)) @{
highlighter.highlightParagraph(line);
@}
@b{return} 0;
@}
@end example
|