Cppcheck
Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes
TokenList Class Reference

#include <tokenlist.h>

List of all members.

Public Member Functions

 TokenList (const Settings *settings)
 ~TokenList ()
void setSettings (const Settings *settings)
void addtoken (const char str[], const unsigned int lineno, const unsigned int fileno, bool split=false)
void addtoken (const Token *tok, const unsigned int lineno, const unsigned int fileno)
bool createTokens (std::istream &code, const std::string &file0="")
 Create tokens from code.
void deallocateTokens ()
 Deallocate list.
const Tokenfront () const
 get first token of list
Tokenfront ()
const Tokenback () const
 get last token of list
Tokenback ()
const std::vector< std::string > & getFiles () const
 Get filenames (the sourcefile + the files it include).
const std::string & file (const Token *tok) const
 get filename for given token
std::string fileLine (const Token *tok) const
 Get file:line for a given token.
void createAst ()

Static Public Member Functions

static void deleteTokens (Token *tok)
 Delete all tokens in given token list.
static void insertTokens (Token *dest, const Token *src, unsigned int n)

Private Member Functions

 TokenList (const TokenList &)
 Disable copy constructor, no implementation.
TokenListoperator= (const TokenList &)
 Disable assignment operator, no implementation.

Private Attributes

Token_front
 private
Token_back
std::vector< std::string > _files
 filenames for the tokenized source code (source + included)
const Settings_settings
 settings

Detailed Description

Definition at line 35 of file tokenlist.h.


Constructor & Destructor Documentation

TokenList::TokenList ( const Settings settings)

Definition at line 34 of file tokenlist.cpp.

Definition at line 41 of file tokenlist.cpp.

References deallocateTokens().

TokenList::TokenList ( const TokenList ) [private]

Disable copy constructor, no implementation.


Member Function Documentation

void TokenList::addtoken ( const char  str[],
const unsigned int  lineno,
const unsigned int  fileno,
bool  split = false 
)
void TokenList::addtoken ( const Token tok,
const unsigned int  lineno,
const unsigned int  fileno 
)
const Token* TokenList::back ( ) const [inline]
Token* TokenList::back ( ) [inline]

Definition at line 81 of file tokenlist.h.

bool TokenList::createTokens ( std::istream &  code,
const std::string &  file0 = "" 
)

Create tokens from code.

The code must be preprocessed first:

  • multiline strings are not handled.
  • UTF in the code are not handled.
  • comments are not handled.
    Parameters:
    codeinput stream for code
    file0source file name

Definition at line 171 of file tokenlist.cpp.

References _back, Settings::_basePaths, _files, _front, _settings, addtoken(), Token::assignProgressValues(), deallocateTokens(), Path::getRelativePath(), MathLib::isHex(), Preprocessor::macroChar, Path::sameFileName(), Token::setExpandedMacro(), and Path::simplifyPath().

Referenced by PreprocessorMacro::PreprocessorMacro(), simplifyVarMap(), simplifyVarMapExpandValue(), Tokenizer::tokenize(), and Tokenizer::tokenizeCondition().

Deallocate list.

Definition at line 49 of file tokenlist.cpp.

References _back, _files, _front, and deleteTokens().

Referenced by createTokens(), Tokenizer::tokenize(), and ~TokenList().

void TokenList::deleteTokens ( Token tok) [static]

Delete all tokens in given token list.

Parameters:
toktoken list to delete

Definition at line 57 of file tokenlist.cpp.

References Token::next().

Referenced by CheckMemoryLeakInFunction::call_func(), CheckMemoryLeakInFunction::checkScope(), deallocateTokens(), and CheckMemoryLeakInFunction::getcode().

const std::string & TokenList::file ( const Token tok) const

get filename for given token

Parameters:
tokThe given token
Returns:
filename for the given token

Definition at line 425 of file tokenlist.cpp.

References _files, and Token::fileIndex().

Referenced by CppCheck::checkFile(), and Tokenizer::simplifyFileAndLineMacro().

std::string TokenList::fileLine ( const Token tok) const

Get file:line for a given token.

Parameters:
tokgiven token
Returns:
location for given token

Definition at line 430 of file tokenlist.cpp.

References ErrorLogger::ErrorMessage::FileLocation::stringify().

Referenced by SymbolDatabase::printOut(), and SymbolDatabase::printVariable().

const Token* TokenList::front ( ) const [inline]

get first token of list

Definition at line 70 of file tokenlist.h.

Referenced by Tokenizer::arraySize(), Tokenizer::combineOperators(), Tokenizer::combineStrings(), Tokenizer::concatenateDoubleSharp(), Tokenizer::concatenateNegativeNumberAndAnyPositive(), Tokenizer::createLinks(), Tokenizer::createLinks2(), Tokenizer::createSymbolDatabase(), Tokenizer::deleteInvalidTypedef(), Tokenizer::deleteSymbolDatabase(), Tokenizer::elseif(), TemplateSimplifier::expandTemplate(), Tokenizer::hasComplicatedSyntaxErrorsInTemplates(), Tokenizer::hasEnumsWithTypedef(), Tokenizer::removeExceptionSpecifications(), Tokenizer::removeMacroInVarDecl(), Tokenizer::removeMacrosInGlobalScope(), Tokenizer::removeRedundantAssignment(), Tokenizer::removeRedundantConditions(), Tokenizer::removeRedundantFor(), Tokenizer::removeRedundantSemicolons(), Tokenizer::removeUnnecessaryQualification(), Tokenizer::setVarId(), Tokenizer::simplifyAddBraces(), Tokenizer::simplifyArrayAccessSyntax(), Tokenizer::simplifyAsm(), Tokenizer::simplifyAssignmentBlock(), Tokenizer::simplifyAssignmentInFunctionCall(), Tokenizer::simplifyAttribute(), Tokenizer::simplifyBitfields(), Tokenizer::simplifyBorland(), Tokenizer::simplifyBuiltinExpect(), Tokenizer::simplifyCalculations(), Tokenizer::simplifyCallingConvention(), Tokenizer::simplifyCasts(), Tokenizer::simplifyCharAt(), Tokenizer::simplifyComma(), Tokenizer::simplifyComparisonOrder(), Tokenizer::simplifyCompoundAssignment(), Tokenizer::simplifyConditionOperator(), Tokenizer::simplifyConditions(), Tokenizer::simplifyConst(), Tokenizer::simplifyConstTernaryOp(), Tokenizer::simplifyDebugNew(), Tokenizer::simplifyDeclspec(), Tokenizer::simplifyDoublePlusAndDoubleMinus(), Tokenizer::simplifyEmptyNamespaces(), Tokenizer::simplifyEnum(), Tokenizer::simplifyErrNoInWhile(), Tokenizer::simplifyExternC(), Tokenizer::simplifyFileAndLineMacro(), Tokenizer::simplifyFlowControl(), Tokenizer::simplifyFuncInWhile(), Tokenizer::simplifyFunctionParameters(), Tokenizer::simplifyFunctionPointers(), Tokenizer::simplifyFunctionReturn(), Tokenizer::simplifyGoto(), Tokenizer::simplifyIfAssign(), Tokenizer::simplifyIfNot(), Tokenizer::simplifyIfNotNull(), Tokenizer::simplifyIfSameInnerCondition(), Tokenizer::simplifyInitVar(), Tokenizer::simplifyKeyword(), Tokenizer::simplifyKnownVariables(), Tokenizer::simplifyLabelsCaseDefault(), Tokenizer::simplifyLogicalOperators(), Tokenizer::simplifyMathExpressions(), Tokenizer::simplifyMathFunctions(), Tokenizer::simplifyMicrosoftMemoryFunctions(), Tokenizer::simplifyMicrosoftMFC(), Tokenizer::simplifyMicrosoftStringFunctions(), Tokenizer::simplifyMulAndParens(), Tokenizer::simplifyNamespaceStd(), Tokenizer::simplifyNestedStrcat(), Tokenizer::simplifyNull(), Tokenizer::simplifyOperatorName(), Tokenizer::simplifyParameterVoid(), Tokenizer::simplifyPlatformTypes(), Tokenizer::simplifyPointerToStandardType(), Tokenizer::simplifyQtSignalsSlots(), Tokenizer::simplifyRealloc(), Tokenizer::simplifyRedundantConsecutiveBraces(), Tokenizer::simplifyRedundantParentheses(), Tokenizer::simplifyReference(), Tokenizer::simplifyReturnStrncat(), Tokenizer::simplifyRoundCurlyParentheses(), Tokenizer::simplifySizeof(), Tokenizer::simplifySQL(), Tokenizer::simplifyStd(), Tokenizer::simplifyStdType(), Tokenizer::simplifyStructDecl(), Tokenizer::simplifyStructInit(), TemplateSimplifier::simplifyTemplateInstantiations(), TemplateSimplifier::simplifyTemplates(), Tokenizer::simplifyTemplates(), Tokenizer::simplifyTokenList(), Tokenizer::simplifyTypedef(), Tokenizer::simplifyUndefinedSizeArray(), Tokenizer::simplifyVarDecl(), Tokenizer::simplifyVariableMultipleAssign(), simplifyVarMap(), simplifyVarMapExpandValue(), Tokenizer::simplifyWhile0(), Tokenizer::tokenize(), and Tokenizer::tokenizeCondition().

Token* TokenList::front ( ) [inline]

Definition at line 73 of file tokenlist.h.

const std::vector<std::string>& TokenList::getFiles ( ) const [inline]

Get filenames (the sourcefile + the files it include).

The first filename is the filename for the sourcefile

Returns:
vector with filenames

Definition at line 90 of file tokenlist.h.

Referenced by CppCheck::checkFile(), ErrorLogger::ErrorMessage::ErrorMessage(), Tokenizer::getSourceFilePath(), Tokenizer::simplifyKnownVariablesSimplify(), Tokenizer::simplifyTokenList(), and Tokenizer::simplifyTypedef().

void TokenList::insertTokens ( Token dest,
const Token src,
unsigned int  n 
) [static]
TokenList& TokenList::operator= ( const TokenList ) [private]

Disable assignment operator, no implementation.

void TokenList::setSettings ( const Settings settings) [inline]

Definition at line 40 of file tokenlist.h.


Member Data Documentation

Token * TokenList::_back [private]

Definition at line 121 of file tokenlist.h.

Referenced by addtoken(), createTokens(), and deallocateTokens().

std::vector<std::string> TokenList::_files [private]

filenames for the tokenized source code (source + included)

Definition at line 124 of file tokenlist.h.

Referenced by createTokens(), deallocateTokens(), and file().

private

Token list

Definition at line 121 of file tokenlist.h.

Referenced by addtoken(), createAst(), createTokens(), and deallocateTokens().

const Settings* TokenList::_settings [private]

settings

Definition at line 127 of file tokenlist.h.

Referenced by createTokens().


The documentation for this class was generated from the following files: