1 /******************************************************************************
3 * $Id: scanner.h,v 1.15 2001/03/19 19:27:41 root Exp $
5 * Copyright (C) 1997-2012 by Dimitri van Heesch.
7 * Permission to use, copy, modify, and distribute this software and its
8 * documentation under the terms of the GNU General Public License is hereby
9 * granted. No representations are made about the suitability of this software
10 * for any purpose. It is provided "as is" without express or implied warranty.
11 * See the GNU General Public License for more details.
13 * Documents produced by Doxygen are derivative works derived from the
14 * input used in their production; they are not affected by this license.
21 #include "parserintf.h"
23 /** \brief C-like language parser using state-based lexical scanning.
25 * This is the language parser for doxygen. It is somewhat fuzzy and
26 * supports C++ and various languages that are closely related to C++,
27 * such as C, C#, Objective-C, Java, PHP, and IDL.
29 class CLanguageScanner : public ParserInterface
32 virtual ~CLanguageScanner() {}
33 void parseInput(const char *fileName,
36 bool needsPreprocessing(const QCString &extension);
37 void parseCode(CodeOutputInterface &codeOutIntf,
38 const char *scopeName,
39 const QCString &input,
41 const char *exampleName=0,
45 bool inlineFragment=FALSE,
46 MemberDef *memberDef=0,
47 bool showLineNumbers=TRUE,
48 Definition *searchCtx=0
50 void resetCodeParserState();
51 void parsePrototype(const char *text);
54 void scanFreeScanner();