3967{
3970 YY_EXTRA_TYPE state = preYYget_extra(
p->yyscanner);
3971 struct yyguts_t *yyg = (
struct yyguts_t*)
p->yyscanner;
3972
3973#ifdef FLEX_DEBUG
3975#endif
3976
3978
3979
3980
3984 state->curlyCount=0;
3985 state->lexRulesPart=false;
3986 state->nospaces=
FALSE;
3987 state->inputBuf=&input;
3988 state->inputBufPos=0;
3989 state->outputBuf=&output;
3990 state->includeStack.clear();
3991 state->expandedDict.clear();
3992 state->contextDefines.clear();
3993 while (!state->condStack.empty()) state->condStack.pop();
3994
3996
3997 state->inputFileDef = state->yyFileDef;
3998
3999
4001
4002 state->yyLineNr = 1;
4003 state->yyColNr = 1;
4004 state->ifcount = 0;
4005
4006 BEGIN( Start );
4007
4008 state->expectGuard =
guessSection(fileName).isHeader();
4009 state->guardName.clear();
4010 state->lastGuardName.clear();
4011 state->guardExpr.clear();
4012
4013 preYYlex(yyscanner);
4014
4015 while (!state->condStack.empty())
4016 {
4017 const std::unique_ptr<preYY_CondCtx> &ctx = state->condStack.top();
4019 if (ctx->sectionId!=
" ") sectionInfo.
sprintf(
" with label '%s' ",
qPrint(ctx->sectionId.stripWhiteSpace()));
4020 warn(ctx->fileName,ctx->lineNr,
"Conditional section%sdoes not have "
4021 "a corresponding \\endcond command within this file.",
qPrint(sectionInfo));
4022 state->condStack.pop();
4023 }
4024
4026
4028 {
4031 int line=1;
4034 size_t pos=0;
4035 while (pos<output.size())
4036 {
4037 putchar(output[pos]);
4039 pos++;
4040 }
4042 if (yyextra->contextDefines.size()>0)
4043 {
4046 for (auto &kv : yyextra->contextDefines)
4047 {
4049 }
4050 for (auto &kv : yyextra->localDefines)
4051 {
4053 }
4055 }
4056 else
4057 {
4059 }
4060 }
4061
4062 {
4064 for (const auto &inc : state->includeRelations)
4065 {
4066 auto toKind = [](
bool local,
bool imported) ->
IncludeKind
4067 {
4068 if (local)
4069 {
4070 if (imported)
4071 {
4073 }
4075 }
4076 else if (imported)
4077 {
4079 }
4081 };
4082 if (inc->fromFileDef)
4083 {
4084 inc->fromFileDef->addIncludeDependency(inc->toFileDef,inc->includeName,toKind(inc->local,inc->imported));
4085 }
4086 if (inc->toFileDef && inc->fromFileDef)
4087 {
4088 inc->toFileDef->addIncludedByDependency(inc->fromFileDef,inc->fromFileDef->docName(),toKind(inc->local,inc->imported));
4089 }
4090 }
4091
4093 }
4094
4095
4096}
static void print(DebugMask mask, int prio, const char *fmt,...)
static bool isFlagSet(const DebugMask mask)
static DefinesPerFileList macroDefinitions
This is an alternative implementation of QCString.
QCString & sprintf(const char *format,...)
#define Config_getBool(name)
#define warn(file, line, fmt,...)
static void initPredefined(yyscan_t yyscanner, const QCString &fileName)
static void setFileName(yyscan_t yyscanner, const QCString &name)
static void forceEndCondSection(yyscan_t yyscanner)
static std::mutex g_updateGlobals
static std::mutex g_debugMutex
const char * qPrint(const char *s)
EntryType guessSection(const QCString &name)