![]() Server : Apache System : Linux server2.corals.io 4.18.0-348.2.1.el8_5.x86_64 #1 SMP Mon Nov 15 09:17:08 EST 2021 x86_64 User : corals ( 1002) PHP Version : 7.4.33 Disable Function : exec,passthru,shell_exec,system Directory : /usr/share/doc/source-highlight/examples/ |
/* * infoformatter-main.cpp * * Example of use of source-highlight library: * prints formatting information to the console: what is going to * be formatted and its position within the line * * Created on: May 7, 2009 * Author: Lorenzo Bettini <http://www.lorenzobettini.it>, (C) 2008 * Copyright: See COPYING file that comes with this distribution *///> TEXINFO #ifdef HAVE_CONFIG_H #include "config.h" #endif #include <iostream> #include "srchilite/langdefmanager.h" #include "srchilite/regexrulefactory.h" #include "srchilite/sourcehighlighter.h" #include "srchilite/formattermanager.h" #include "infoformatter.h" using namespace std; #ifndef DATADIR #define DATADIR "" #endif int main() { srchilite::RegexRuleFactory ruleFactory; srchilite::LangDefManager langDefManager(&ruleFactory); // we highlight C++ code for simplicity srchilite::SourceHighlighter highlighter(langDefManager.getHighlightState( DATADIR, "cpp.lang")); srchilite::FormatterManager formatterManager(InfoFormatterPtr( new InfoFormatter)); InfoFormatterPtr keywordFormatter(new InfoFormatter("keyword")); formatterManager.addFormatter("keyword", keywordFormatter); formatterManager.addFormatter("string", InfoFormatterPtr(new InfoFormatter( "string"))); // for "type" we use the same formatter as for "keyword" formatterManager.addFormatter("type", keywordFormatter); formatterManager.addFormatter("comment", InfoFormatterPtr( new InfoFormatter("comment"))); formatterManager.addFormatter("symbol", InfoFormatterPtr(new InfoFormatter( "symbol"))); formatterManager.addFormatter("number", InfoFormatterPtr(new InfoFormatter( "number"))); formatterManager.addFormatter("preproc", InfoFormatterPtr( new InfoFormatter("preproc"))); highlighter.setFormatterManager(&formatterManager); // make sure it uses additional information srchilite::FormatterParams params; highlighter.setFormatterParams(¶ms); string line; // we now highlight a line a time while (getline(cin, line)) { // reset position counter within a line params.start = 0; highlighter.highlightParagraph(line); } return 0; }