diff options
Diffstat (limited to 'src/fileparser.cpp')
-rw-r--r-- | src/fileparser.cpp | 51 |
1 files changed, 51 insertions, 0 deletions
diff --git a/src/fileparser.cpp b/src/fileparser.cpp new file mode 100644 index 0000000..31434a8 --- /dev/null +++ b/src/fileparser.cpp @@ -0,0 +1,51 @@ +/****************************************************************************** + * + * Copyright (C) 1997-2014 by Dimitri van Heesch. + * + * Permission to use, copy, modify, and distribute this software and its + * documentation under the terms of the GNU General Public License is hereby + * granted. No representations are made about the suitability of this software + * for any purpose. It is provided "as is" without express or implied warranty. + * See the GNU General Public License for more details. + * + * Documents produced by Doxygen are derivative works derived from the + * input used in their production; they are not affected by this license. + * + */ + +#include "fileparser.h" +#include "outputgen.h" + +void FileParser::parseCode(CodeOutputInterface &codeOutIntf, + const char *, // scopeName + const QCString & input, + SrcLangExt, // lang + bool, // isExampleBlock + const char *, // exampleName + FileDef *, // fileDef + int startLine, + int endLine, + bool, // inlineFragment + MemberDef *, // memberDef + bool showLineNumbers, + Definition *, // searchCtx, + bool // collectXRefs + ) +{ + int lineNr = startLine!=-1 ? startLine : 1; + int length = input.length(); + int i=0; + while (i<length && (endLine==-1 || lineNr<=endLine)) + { + int j=i; + while (j<length && input[j]!='\n') j++; + QCString lineStr = input.mid(i,j-i); + codeOutIntf.startCodeLine(showLineNumbers); + if (showLineNumbers) codeOutIntf.writeLineNumber(0,0,0,lineNr); + codeOutIntf.codify(lineStr); + codeOutIntf.endCodeLine(); + lineNr++; + i=j+1; + } +} + |