14#if __DCL_HAVE_THIS_FILE__
25 IniFile ini(pszIDocIniFileName);
26 String strTemp = ini.getString(L
"MAIN", L
"SYNTAXES");
29 strTemp.split(L
' ', list);
35 for(StringArray::Iterator it = list.begin(); it != list.end(); it++) {
37 strExt = ini.getString(strTitle, L
"FILE_EXTENSION");
38 strSyntaxFile = strPath + ini.getString(strTitle, L
"SYNTAX_FILE");
40 __DCL_TRACE3(L
"Syntax title[%ls] ext[%ls] filename[%ls]",
41 strTitle.data(), strExt.data(), strSyntaxFile.data());
44 p->
load(strSyntaxFile);
62#define _snprintf snprintf
69 out << String::format(L
"\n<span style=\"color:gray;\">%3d: ",
__nLineNumber++);
81 out << L
"<span style=\"color:green;\">";
84 out << L
"<span style=\"color:red;\">";
87 out << L
"<span style=\"color:blue;\">";
111 if (pStart < pCurrent) \
112 out.write(pStart, pCurrent - pStart); \
113 pStart = pCurrent + 1; \
122 Writer& out,
const wchar_t* pData,
size_t nDataSize
125 const wchar_t* pStart = pData;
126 const wchar_t* pCurrent = pStart;
128 while(pCurrent < (pData + nDataSize)) {
134 out.write(str.data(), str.length());
180 const wchar_t* pData,
182 const wchar_t* pszLanguageTitle
199 out << L
"\n<pre style=\"background-color:white; color:black; font-style=normal; font-weight:normal\">";
204 DocParser parser(pData, nDataSize, pSyntax);
221 const wchar_t* pszFileName,
222 const wchar_t* pszLangSyntax
227 String strLangSyntax;
228 if (pszLangSyntax ==
NULL) {
229 const wchar_t* p = pszFileName + String::length(pszFileName);
230 while(--p > pszFileName) {
237 if (p == pszFileName)
245 pszLangSyntax = strLangSyntax.data();
268 const wchar_t* pData,
270 const wchar_t* pszLangSyntax
290 const wchar_t* pszHtmlTitle
293 if (pszHtmlTitle ==
NULL)
294 pszHtmlTitle = L
"Unknown File Name";
296 StringBuilder strHeader = L
""
298 "\n<html lang=\"ko-KR\">"
300 "\n<meta charset=\"UTF-8\" >"
301 "\n<meta name=\"generator\" content=\"src2html 0.9\">"
302 "\n<meta name=\"author\" content=\"Daejung Kim <daejung@sysdeveloper.net> http://www.sysdeveloper.net/daejung\">"
304 strHeader += pszHtmlTitle;
305 strHeader += L
"</title>";
315 String strFooter = L
""
#define __DCL_TRACE3(fmt, arg1, arg2, arg3)
#define __DCL_ASSERT(expr)
bool getNextBlock(DOC_BLOCK &block)
bool load(const wchar_t *pszFileName)
const String & languageTitle() const
bool isValidExtension(const wchar_t *pszFileExt) const
static String dirname(const String &_path)
static bool exists(const String &_path)
static String readText(const String &_filename) __DCL_THROWS1(IOException *)
void generateHelper(Writer &out, const wchar_t *pData, size_t nDataSize, const wchar_t *pszLanguageTitle)
void setOption(int nTabWidth, bool bShowLineNumber)
HtmlGenerator(const wchar_t *pszIDocIniFileName)
void writeBegin(Writer &out, BlockType type)
void generateHeader(Writer &out, const wchar_t *pszHtmlTitle=NULL)
void writeLineNumber(Writer &out)
bool generate(Writer &out, const wchar_t *pszFileName, const wchar_t *pszLangSyntax=NULL)
void writeData(Writer &out, const wchar_t *pData, size_t nDataSize)
void writeEnd(Writer &out, BlockType type)
void generateFooter(Writer &out)