PUMA Library Reference Manual
Puma Namespace Reference

Classes

class  ACIntroducer
 
class  Array
 
class  Array< Item * >
 Variable length array implementation specialized for pointer types. More...
 
class  BCList
 
class  BCStack
 
class  Builder
 
class  CArgumentInfo
 
class  CAttributeInfo
 
class  CBaseClassInfo
 
class  CBuilder
 
class  CCandidateInfo
 
class  CCArrayToPointerConv
 
class  CCAssocScopes
 
class  CCBooleanConv
 
class  CCBuilder
 
class  CCConversion
 
class  CCConversions
 
class  CCConvSeq
 
class  CCDerivedToBaseConv
 
class  CCEllipsisConvSeq
 
class  CCFloatingIntegralConv
 
class  CCFloatingPointConv
 
class  CCFloatingPointPromotion
 
class  CCFunctionToPointerConv
 
class  CCIdentityConv
 
class  CCInstantiation
 
class  CCIntegralConv
 
class  CCIntegralPromotion
 
class  CClassInfo
 
class  CClassInstance
 
class  CCLexer
 
class  CCLvalueToRvalueConv
 
class  CCNameLookup
 
class  CConstant
 
class  CCopyBeforeManipulator
 
class  CCopyManipulator
 
class  CCOverloading
 
class  CCParser
 
class  CCPointerConv
 
class  CCPointerToMemberConv
 
class  CCQualificationConv
 
class  CCSemantic
 
class  CCSemDeclarator
 
class  CCSemExpr
 
class  CCSemVisitor
 
class  CCStandardConvSeq
 
class  CCSyntax
 
class  CCUserDefinedConv
 
class  CCUserDefinedConvSeq
 
class  CEnumeratorInfo
 
class  CEnumInfo
 
class  CExprValue
 
class  CFctInstance
 
class  CFileInfo
 
class  CFunctionInfo
 
class  Chain
 
class  CKillManipulator
 
class  CLabelInfo
 
class  CLanguage
 
class  CLexer
 
class  CLexerBuffer
 
class  CLinkage
 
class  CLocalScope
 
class  CMatch
 
class  CMatchChecker
 
class  CMemberAliasInfo
 
class  CMoveBeforeManipulator
 
class  CMoveManipulator
 
class  CNamespaceInfo
 
class  CObjectInfo
 
class  Config
 
class  ConfOption
 
class  ConstSizeMemPool
 
class  CopyManipulator
 
class  CParser
 
class  CPrintVisitor
 
class  CProject
 
class  CProtection
 
class  CRecord
 
class  CReplaceManipulator
 
class  CScanner
 
class  CScopeInfo
 
class  CScopeRequest
 
class  CSemantic
 
class  CSemDatabase
 
class  CSemDeclarator
 
class  CSemDeclSpecs
 
class  CSemExpr
 
class  CSemObject
 
class  CSemScope
 
class  CSemValue
 
class  CSemVisitor
 
class  CSourceInfo
 
class  CSpecifiers
 
class  CStorage
 
class  CStrLiteral
 
class  CStructure
 
class  CSubMatch
 
class  CSwapManipulator
 
class  CSyntax
 
class  CT_AccessDecl
 
class  CT_AccessSpec
 
class  CT_AddrExpr
 
class  CT_AlignofExpr
 
class  CT_Any
 
class  CT_AnyCondition
 
class  CT_AnyExtension
 
class  CT_AnyList
 
class  CT_ArgDecl
 
class  CT_ArgDeclList
 
class  CT_ArgDeclSeq
 
class  CT_ArgNameList
 
class  CT_ArrayDeclarator
 
class  CT_ArrayDelimiter
 
class  CT_AsmBlock
 
class  CT_AsmDef
 
class  CT_BaseSpec
 
class  CT_BaseSpecList
 
class  CT_BinaryExpr
 
class  CT_BitFieldDeclarator
 
class  CT_Bool
 
class  CT_BracedDeclarator
 
class  CT_BracedExpr
 
class  CT_BreakStmt
 
class  CT_Call
 
class  CT_CallExpr
 
class  CT_CaseStmt
 
class  CT_CastExpr
 
class  CT_Character
 
class  CT_ClassDef
 
class  CT_ClassSpec
 
class  CT_CmpdLiteral
 
class  CT_CmpdStmt
 
class  CT_Condition
 
class  CT_ConstCast
 
class  CT_ConstructExpr
 
class  CT_ContinueStmt
 
class  CT_ConversionName
 
class  CT_Decl
 
class  CT_Declarator
 
class  CT_DeclaratorList
 
class  CT_DeclList
 
class  CT_DeclSpec
 
class  CT_DeclSpecSeq
 
class  CT_DeclStmt
 
class  CT_DefaultStmt
 
class  CT_DelayedParse
 
class  CT_DelayedParseConstInit
 
class  CT_DelayedParseCtorInit
 
class  CT_DelayedParseFctBody
 
class  CT_DelayedParseFctTryBlock
 
class  CT_DelayedParseParamInit
 
class  CT_DelayedParsePureSpec
 
class  CT_DelayedParseSkippedFctBody
 
class  CT_DeleteExpr
 
class  CT_DerefExpr
 
class  CT_DesignatorSeq
 
class  CT_DestructorName
 
class  CT_DoStmt
 
class  CT_DynamicCast
 
class  CT_EnumDef
 
class  CT_Enumerator
 
class  CT_EnumeratorList
 
class  CT_EnumSpec
 
class  CT_Error
 
class  CT_ExceptionSpec
 
class  CT_Expression
 
class  CT_ExprList
 
class  CT_ExprStmt
 
class  CT_ExtensionList
 
class  CT_FctDeclarator
 
class  CT_FctDef
 
class  CT_Float
 
class  CT_ForStmt
 
class  CT_GnuAsmClobbers
 
class  CT_GnuAsmDef
 
class  CT_GnuAsmOperand
 
class  CT_GnuAsmOperands
 
class  CT_GnuAsmSpec
 
class  CT_GnuAttribute
 
class  CT_GnuCaseStmt
 
class  CT_GnuLocalLabelStmt
 
class  CT_GnuStatementExpr
 
class  CT_GnuTypeof
 
class  CT_GotoStmt
 
class  CT_Handler
 
class  CT_HandlerSeq
 
class  CT_IfElseStmt
 
class  CT_IfStmt
 
class  CT_IfThenExpr
 
class  CT_ImplicitCall
 
class  CT_ImplicitCast
 
class  CT_IndexDesignator
 
class  CT_IndexExpr
 
class  CT_InitDeclarator
 
class  CT_Integer
 
class  CT_LabelStmt
 
class  CT_LinkageSpec
 
class  CT_List
 
class  CT_MembDesignator
 
class  CT_MembInit
 
class  CT_MembInitList
 
class  CT_MembList
 
class  CT_MembPtrDeclarator
 
class  CT_MembPtrExpr
 
class  CT_MembRefExpr
 
class  CT_NamedType
 
class  CT_NamespaceAliasDef
 
class  CT_NamespaceDef
 
class  CT_NewExpr
 
class  CT_NonTypeParamDecl
 
class  CT_ObjDecl
 
class  CT_OffsetofExpr
 
class  CT_OperatorName
 
class  CT_PostfixExpr
 
class  CT_PrimDeclSpec
 
class  CT_PrivateName
 
class  CT_Program
 
class  CT_PtrDeclarator
 
class  CT_QualName
 
class  CT_RefDeclarator
 
class  CT_ReintCast
 
class  CT_ReturnStmt
 
class  CT_RootQualName
 
class  CT_SimpleName
 
class  CT_SizeofExpr
 
class  CT_SpecialName
 
class  CT_Statement
 
class  CT_StaticAssert
 
class  CT_StaticCast
 
class  CT_String
 
class  CT_SwitchStmt
 
class  CT_TemplateArgList
 
class  CT_TemplateDecl
 
class  CT_TemplateName
 
class  CT_TemplateParamDecl
 
class  CT_TemplateParamList
 
class  CT_ThrowExpr
 
class  CT_Token
 
class  CT_TryStmt
 
class  CT_TypeidExpr
 
class  CT_TypeParamDecl
 
class  CT_TypeTraitExpr
 
class  CT_UnaryExpr
 
class  CT_UnionDef
 
class  CT_UnionSpec
 
class  CT_UsingDecl
 
class  CT_UsingDirective
 
class  CT_WhileStmt
 
class  CT_WideCharacter
 
class  CT_WideString
 
class  CTemplateInfo
 
class  CTemplateInstance
 
class  CTemplateParamInfo
 
class  CTranslationUnit
 
class  CTree
 
class  CTreeMatcher
 
class  CTypeAddress
 
class  CTypeArray
 
class  CTypeBitField
 
class  CTypeClass
 
class  CTypedefInfo
 
class  CTypeEnum
 
class  CTypeFunction
 
class  CTypeInfo
 
class  CTypeList
 
class  CTypeMemberPointer
 
class  CTypePointer
 
class  CTypePrimitive
 
class  CTypeQualified
 
class  CTypeRecord
 
class  CTypeTemplateParam
 
class  CTypeUnion
 
class  CTypeVarArray
 
class  CUnionInfo
 
class  CUnionInstance
 
class  CUnit
 
class  CUsingInfo
 
class  CutManipulator
 
class  CVisitor
 
class  CWStrLiteral
 
struct  DeducedArgument
 
class  DString
 
class  ErrorCollector
 
class  ErrorSeverity
 
class  ErrorSink
 
class  ErrorStream
 
class  FdSource
 
class  FileInfo
 
class  Filename
 
class  FilenameInfo
 
class  FileSource
 
class  FileUnit
 
class  Heap
 
class  ImportHandler
 
class  InstantiationBuilder
 
class  InstantiationCandidate
 
class  InstantiationParser
 
class  InstantiationSemantic
 
class  InstantiationSyntax
 
class  InstantiationTokenProvider
 
class  InstantiationTokenSource
 
class  KeyboardSource
 
class  KillManipulator
 
class  LanguageID
 
class  Lexer
 
class  LexerBuffer
 
struct  LexerMap
 
class  List
 
class  ListElement
 
class  Location
 
class  MacroUnit
 
class  ManipCommander
 
class  ManipController
 
class  ManipError
 
class  Manipulator
 
class  ManipulatorSequence
 
class  MatchCollector
 
class  MemPool
 
class  MoveBeforeManipulator
 
class  MoveManipulator
 
class  OptsParser
 
class  Parser
 
class  ParserKey
 
class  PasteBeforeManipulator
 
class  PasteManipulator
 
class  PathInfo
 
class  PathIterator
 
class  PathManager
 
class  Pipe
 
class  PipedCmd
 
class  PreAnswer
 
class  PreArgDesc
 
class  PreAssertDirective
 
class  PreAssertionEvaluator
 
class  PreConditionalGroup
 
class  PreCondSemNode
 
class  PreDefineConstantDirective
 
class  PreDefineFunctionDirective
 
class  PreDirectiveGroups
 
class  PreElifDirective
 
class  PreElifPart
 
class  PreElseDirective
 
class  PreElsePart
 
class  PreEndifDirective
 
class  PreError
 
class  PreErrorDirective
 
class  PreExpr
 
class  PreExprLexer
 
class  PreFileIncluder
 
class  PreIdentifierList
 
class  PreIfdefDirective
 
class  PreIfDirective
 
class  PreIfndefDirective
 
class  PreInclSemNode
 
class  PreIncludeDirective
 
class  PreLevelState
 
class  PreMacro
 
class  PreMacroExpander
 
class  PreMacroManager
 
class  PreParserState
 
class  PrePredicate
 
class  PrePredicateManager
 
class  PrePrintVisitor
 
class  PreprocessorParser
 
class  PreProgram
 
class  PreSemIterator
 
class  PreSonIterator
 
class  PreTokenList
 
class  PreTokenListPart
 
class  PreTree
 
class  PreTreeComposite
 
class  PreTreeIterator
 
class  PreTreeToken
 
class  PreUnassertDirective
 
class  PreUndefDirective
 
class  PreVisitor
 
class  PreWarningDirective
 
class  Printable
 
class  Project
 
class  ProjectFile
 
class  PtrStack
 
class  RegComp
 
class  Rule
 
class  RuleTable
 
class  SaveMode
 
class  Semantic
 
class  SimpleParser
 
class  Sink
 
class  SmartPtr
 
class  Source
 
class  Stack
 
class  StrCol
 
class  StrHashKey
 
class  StrHashTable
 
class  StringSource
 
class  Syntax
 
class  SysCall
 
class  TerminalSink
 
class  Token
 
class  TokenInfo
 
class  Tokenizer
 
class  TokenProvider
 
class  TokenSource
 
class  TokenStream
 
class  Tracing
 
class  Unit
 
class  UnitIterator
 
class  UnitManager
 
class  UnitState
 
class  UnitTokenSrc
 
class  VerboseMgr
 
class  VoidPtrArray
 

Typedefs

typedef long LONG_LONG
 Type long long. More...
 
typedef unsigned long U_LONG_LONG
 Type unsigned long long. More...
 
typedef DIR * DirHandle
 Directory handle type. More...
 
typedef FILE * FileHandle
 File handle type. More...
 
typedef CSemDatabase CClassDatabase
 Backward compatibility alias for CSemDatabase. More...
 

Enumerations

enum  DirEntryType {
  DET_REGULAR,
  DET_DIRECTORY,
  DET_LINK,
  DET_OTHER,
  DET_NOT_IMPLEMENTED
}
 
enum  PreMacroOpTokens {
  TOK_MO_HASH = 450,
  TOK_MO_HASHHASH
}
 
enum  ManipIgnoreMask {
  MIM_NONE = 0,
  MIM_UNBALANCED = 1,
  MIM_MACRO = 2
}
 
enum  ManipMode {
  MM_NO_MACRO_MANIP,
  MM_EXPAND_MACROS
}
 
enum  CTokens {
  TOK_AT = 100,
  TOK_ZERO_VAL,
  TOK_INT_VAL,
  TOK_FLT_VAL,
  TOK_STRING_VAL,
  TOK_CHAR_VAL,
  TOK_COMMA,
  TOK_ASSIGN,
  TOK_QUESTION,
  TOK_OR,
  TOK_ROOF,
  TOK_AND,
  TOK_PLUS,
  TOK_MINUS,
  TOK_MUL,
  TOK_DIV,
  TOK_MODULO,
  TOK_LESS,
  TOK_GREATER,
  TOK_OPEN_ROUND,
  TOK_CLOSE_ROUND,
  TOK_OPEN_SQUARE,
  TOK_CLOSE_SQUARE,
  TOK_OPEN_CURLY,
  TOK_CLOSE_CURLY,
  TOK_SEMI_COLON,
  TOK_COLON,
  TOK_NOT,
  TOK_TILDE,
  TOK_DOT,
  TOK_MUL_EQ,
  TOK_DIV_EQ,
  TOK_MOD_EQ,
  TOK_ADD_EQ,
  TOK_SUB_EQ,
  TOK_LSH_EQ,
  TOK_RSH_EQ,
  TOK_AND_EQ,
  TOK_XOR_EQ,
  TOK_IOR_EQ,
  TOK_OR_OR,
  TOK_AND_AND,
  TOK_EQL,
  TOK_NEQ,
  TOK_LEQ,
  TOK_GEQ,
  TOK_LSH,
  TOK_RSH,
  TOK_DOT_STAR,
  TOK_PTS_STAR,
  TOK_INCR,
  TOK_DECR,
  TOK_PTS,
  TOK_COLON_COLON,
  TOK_ELLIPSIS,
  TOK_FIRST_CORE = TOK_AT,
  TOK_LAST_CORE = TOK_ELLIPSIS,
  TOK_ASM,
  TOK_AUTO,
  TOK_BREAK,
  TOK_CASE,
  TOK_CHAR,
  TOK_CONST,
  TOK_CONTINUE,
  TOK_DEFAULT,
  TOK_DO,
  TOK_DOUBLE,
  TOK_ELSE,
  TOK_ENUM,
  TOK_EXTERN,
  TOK_FLOAT,
  TOK_FOR,
  TOK_GOTO,
  TOK_IF,
  TOK_INLINE,
  TOK_INT,
  TOK_LONG,
  TOK_REGISTER,
  TOK_RESTRICT,
  TOK_RETURN,
  TOK_SHORT,
  TOK_SIGNED,
  TOK_SIZEOF,
  TOK_STATIC,
  TOK_STRUCT,
  TOK_SWITCH,
  TOK_TYPEDEF,
  TOK_UNION,
  TOK_UNSIGNED,
  TOK_VOID,
  TOK_VOLATILE,
  TOK_WHILE,
  TOK_FIRST_C = TOK_ASM,
  TOK_LAST_C = TOK_WHILE,
  TOK_ASM_2,
  TOK_INLINE_2,
  TOK_FIRST_EXT_C = TOK_ASM_2,
  TOK_LAST_EXT_C = TOK_INLINE_2,
  TOK_ALIGNOF,
  TOK_ALIGNOF_2,
  TOK_ALIGNOF_3,
  TOK_ASM_3,
  TOK_C_BOOL,
  TOK_CONST_2,
  TOK_CONST_3,
  TOK_INLINE_3,
  TOK_INT128,
  TOK_OFFSETOF,
  TOK_RESTRICT_2,
  TOK_RESTRICT_3,
  TOK_SIGNED_2,
  TOK_SIGNED_3,
  TOK_VOLATILE_2,
  TOK_VOLATILE_3,
  TOK_THREAD,
  TOK_TYPEOF,
  TOK_TYPEOF_2,
  TOK_TYPEOF_3,
  TOK_TYPEOF_4,
  TOK_ATTRIBUTE,
  TOK_EXTENSION,
  TOK_PSV,
  TOK_PMP,
  TOK_LABEL,
  TOK_EXTERNAL,
  TOK_FIRST_GNUC = TOK_ALIGNOF,
  TOK_LAST_GNUC = TOK_EXTERNAL,
  TOK_INT64,
  TOK_CDECL,
  TOK_CDECL_2,
  TOK_STDCALL,
  TOK_STDCALL_2,
  TOK_FASTCALL,
  TOK_FASTCALL_2,
  TOK_IF_EXISTS,
  TOK_IF_NOT_EXISTS,
  TOK_FIRST_VC = TOK_INT64,
  TOK_LAST_VC = TOK_IF_NOT_EXISTS,
  TOK_BOOL_VAL,
  TOK_BOOL,
  TOK_CATCH,
  TOK_CLASS,
  TOK_CONST_CAST,
  TOK_DELETE,
  TOK_DYN_CAST,
  TOK_EXPLICIT,
  TOK_EXPORT,
  TOK_FRIEND,
  TOK_MUTABLE,
  TOK_NAMESPACE,
  TOK_NEW,
  TOK_OPERATOR,
  TOK_PRIVATE,
  TOK_PROTECTED,
  TOK_PUBLIC,
  TOK_REINT_CAST,
  TOK_STAT_CAST,
  TOK_TEMPLATE,
  TOK_THIS,
  TOK_THROW,
  TOK_TRY,
  TOK_TYPEID,
  TOK_TYPENAME,
  TOK_USING,
  TOK_VIRTUAL,
  TOK_WCHAR_T,
  TOK_AND_AND_ISO_646,
  TOK_AND_EQ_ISO_646,
  TOK_AND_ISO_646,
  TOK_OR_ISO_646,
  TOK_TILDE_ISO_646,
  TOK_NOT_ISO_646,
  TOK_NEQ_ISO_646,
  TOK_OR_OR_ISO_646,
  TOK_IOR_EQ_ISO_646,
  TOK_ROOF_ISO_646,
  TOK_XOR_EQ_ISO_646,
  TOK_FIRST_CC = TOK_BOOL_VAL,
  TOK_LAST_CC = TOK_XOR_EQ_ISO_646,
  TOK_WCHAR_T_2,
  TOK_FIRST_EXT_CC = TOK_WCHAR_T_2,
  TOK_LAST_EXT_CC = TOK_WCHAR_T_2,
  TOK_FIRST_GNUCC,
  TOK_LAST_GNUCC,
  TOK_HAS_NOTHROW_ASSIGN,
  TOK_HAS_NOTHROW_COPY,
  TOK_HAS_NOTHROW_CTOR,
  TOK_HAS_TRIVIAL_ASSIGN,
  TOK_HAS_TRIVIAL_COPY,
  TOK_HAS_TRIVIAL_CTOR,
  TOK_HAS_TRIVIAL_DTOR,
  TOK_HAS_VIRTUAL_DTOR,
  TOK_IS_ABSTRACT,
  TOK_IS_BASE_OF,
  TOK_IS_CLASS,
  TOK_IS_EMPTY,
  TOK_IS_ENUM,
  TOK_IS_POD,
  TOK_IS_TRIVIAL,
  TOK_IS_POLYMORPHIC,
  TOK_IS_UNION,
  TOK_FIRST_TYPETRAIT = TOK_HAS_NOTHROW_ASSIGN,
  TOK_LAST_TYPETRAIT = TOK_IS_UNION,
  TOK_STATIC_ASSERT,
  TOK_FIRST_CC1X = TOK_STATIC_ASSERT,
  TOK_LAST_CC1X = TOK_STATIC_ASSERT,
  TOK_POINTCUT,
  TOK_ASPECT,
  TOK_ADVICE,
  TOK_SLICE,
  TOK_UNKNOWN_T,
  TOK_FIRST_AC = TOK_POINTCUT,
  TOK_LAST_AC = TOK_UNKNOWN_T,
  TOK_ID,
  TOK_EPSILON,
  TOK_NO
}
 Types of tokens for language C and C++. More...
 
enum  {
  TOK_WSPACE = 400,
  TOK_CCSINGLE = 350,
  TOK_CCMULTIBEGIN,
  TOK_CCMULTIEND,
  TOK_CCOMMENT
}
 White space and comment token types. More...
 
enum  CWildcardTokens {
  TOK_WC_AND = 500,
  TOK_WC_OR,
  TOK_WC_XOR,
  TOK_WC_SEQ,
  TOK_WC_IF,
  TOK_WC_ELIF,
  TOK_WC_ENDIF,
  TOK_WC_NOT,
  TOK_WC_EXACT,
  TOK_WC_FIRST,
  TOK_WC_LAST,
  TOK_WC_LEAF,
  TOK_WC_PRUNE,
  TOK_WC_COLLECT,
  TOK_WC_NODENAME,
  TOK_WC_ELEMENT,
  TOK_DO_EXPR,
  TOK_DO_EXPR_LIST,
  TOK_DO_ID_EXPR,
  TOK_DO_IDENTIFIER,
  TOK_DO_DECL_SPEC,
  TOK_DO_DECL_SPEC_SEQ,
  TOK_DO_INIT_DECLARATOR_LIST,
  TOK_DO_INIT_DECLARATOR,
  TOK_DO_DECLARATOR,
  TOK_DO_INIT,
  TOK_DO_ARG_DECL_SEQ,
  TOK_DO_FCT_BODY,
  TOK_DO_CLASS_SPEC,
  TOK_DO_MEMBER_SPEC,
  TOK_DO_MEMBER_DECL,
  TOK_DO_BASE_CLAUSE,
  TOK_DO_CTOR_INIT,
  TOK_DO_MEM_INIT,
  TOK_DO_STMT,
  TOK_DO_STMT_SEQ,
  TOK_ANY_EXPR,
  TOK_ANY_EXPR_LIST,
  TOK_ANY_ID_EXPR,
  TOK_ANY_IDENTIFIER,
  TOK_ANY_DECL_SPEC,
  TOK_ANY_DECL_SPEC_SEQ,
  TOK_ANY_INIT_DECLARATOR_LIST,
  TOK_ANY_INIT_DECLARATOR,
  TOK_ANY_DECLARATOR,
  TOK_ANY_INIT,
  TOK_ANY_ARG_DECL_SEQ,
  TOK_ANY_FCT_BODY,
  TOK_ANY_CLASS_SPEC,
  TOK_ANY_MEMBER_SPEC,
  TOK_ANY_MEMBER_DECL,
  TOK_ANY_BASE_CLAUSE,
  TOK_ANY_CTOR_INIT,
  TOK_ANY_MEM_INIT,
  TOK_ANY_STMT,
  TOK_ANY_STMT_SEQ,
  TOK_WC_IS_CLASS,
  TOK_WC_IS_ENUM,
  TOK_WC_IS_TYPEDEF
}
 Types of wildcard tokens. More...
 

Functions

template<int N>
void * malloc ()
 Constant size memory block pool variant of malloc(). More...
 
template<int N>
void free (void *block)
 Constant size memory block pool variant of free(). More...
 
template<int N>
void clean ()
 Short-cut function for calling method clean() on the corresponding fixed size memory block pool instance. More...
 
std::ostream & operator<< (std::ostream &os, const Printable &object)
 Output stream operator for Printable objects. More...
 
std::ostream & endvm (std::ostream &outs)
 Finish a VerboseMgr message and write it on the destination output stream if the verbosity level is not yet reached. More...
 
void endMessage (ErrorSink &err)
 Finish the current error message on the given error sink. More...
 
std::ostream & operator<< (std::ostream &out, const Location &location)
 Output stream operator to print the given location on the given output stream. More...
 
std::ostream & operator<< (std::ostream &os, const Token &object)
 
std::ostream & operator<< (std::ostream &out, const CExprValue &ev)
 
std::ostream & endu (std::ostream &outs)
 End-of-unit stream manipulator. More...
 
void utf8_encode (LONG_LONG i, char *&p, long int &ct)
 
LONG_LONG utf8_scan (const char *&s, bool eight_digits)
 

Variables

const ErrorSeverity sev_none
 Error has no severity. More...
 
const ErrorSeverity sev_message
 Informal message. More...
 
const ErrorSeverity sev_warning
 A warning. More...
 
const ErrorSeverity sev_error
 An error. More...
 
const ErrorSeverity sev_fatal
 A fatal error. More...
 
CTypeInfo CTYPE_EMPTY
 Empty type. More...
 
CTypePrimitive CTYPE_BOOL
 bool More...
 
CTypePrimitive CTYPE_C_BOOL
 _Bool More...
 
CTypePrimitive CTYPE_CHAR
 char More...
 
CTypePrimitive CTYPE_SIGNED_CHAR
 signed char More...
 
CTypePrimitive CTYPE_UNSIGNED_CHAR
 unsigned char More...
 
CTypePrimitive CTYPE_WCHAR_T
 wchar_t More...
 
CTypePrimitive CTYPE_SHORT
 short More...
 
CTypePrimitive CTYPE_UNSIGNED_SHORT
 unsigned short More...
 
CTypePrimitive CTYPE_INT
 int More...
 
CTypePrimitive CTYPE_UNSIGNED_INT
 unsigned int More...
 
CTypePrimitive CTYPE_LONG
 long More...
 
CTypePrimitive CTYPE_UNSIGNED_LONG
 unsigned long More...
 
CTypePrimitive CTYPE_LONG_LONG
 long long More...
 
CTypePrimitive CTYPE_UNSIGNED_LONG_LONG
 unsigned long long More...
 
CTypePrimitive CTYPE_INT128
 __int128 More...
 
CTypePrimitive CTYPE_UNSIGNED_INT128
 unsigned __int128 More...
 
CTypePrimitive CTYPE_FLOAT
 float More...
 
CTypePrimitive CTYPE_DOUBLE
 double More...
 
CTypePrimitive CTYPE_LONG_DOUBLE
 long double More...
 
CTypePrimitive CTYPE_VOID
 void More...
 
CTypePrimitive CTYPE_UNKNOWN_T
 unknown_t More...
 
CTypePrimitive CTYPE_UNDEFINED
 Undefined type. More...
 
CTypePrimitive CTYPE_ELLIPSIS
 Any type. More...
 
int TRACE_SCOPES
 

Typedef Documentation

◆ CClassDatabase

Backward compatibility alias for CSemDatabase.

◆ DirHandle

typedef DIR* Puma::DirHandle

Directory handle type.

◆ FileHandle

typedef FILE* Puma::FileHandle

File handle type.

◆ LONG_LONG

typedef long Puma::LONG_LONG

Type long long.

◆ U_LONG_LONG

typedef unsigned long Puma::U_LONG_LONG

Type unsigned long long.

Enumeration Type Documentation

◆ anonymous enum

anonymous enum

White space and comment token types.

These types can be compared to Puma::Token::type().

Enumerator
TOK_WSPACE 

Any white space block.

TOK_CCSINGLE 

C++ style single line comment.

TOK_CCMULTIBEGIN 

C style multi-line comment start token.

TOK_CCMULTIEND 

C style multi-line comment end token.

TOK_CCOMMENT 

Comment block.

◆ CTokens

Types of tokens for language C and C++.

These types can be compared to Puma::Token::type().

Enumerator
TOK_AT 

@

TOK_ZERO_VAL 

0

TOK_INT_VAL 

Integer constant.

TOK_FLT_VAL 

Floating point constant.

TOK_STRING_VAL 

String constant.

TOK_CHAR_VAL 

Character constant.

TOK_COMMA 

,

TOK_ASSIGN 

=

TOK_QUESTION 

?

TOK_OR 

|

TOK_ROOF 

^

TOK_AND 

&

TOK_PLUS 
TOK_MINUS 

%-

TOK_MUL 
TOK_DIV 

/

TOK_MODULO 

%

TOK_LESS 

<

TOK_GREATER 

TOK_OPEN_ROUND 

(

TOK_CLOSE_ROUND 

)

TOK_OPEN_SQUARE 

[

TOK_CLOSE_SQUARE 

]

TOK_OPEN_CURLY 

{

TOK_CLOSE_CURLY 

}

TOK_SEMI_COLON 

;

TOK_COLON 

:

TOK_NOT 

!

TOK_TILDE 

~

TOK_DOT 

"."

TOK_MUL_EQ 

*=

TOK_DIV_EQ 

/=

TOK_MOD_EQ 

%=

TOK_ADD_EQ 

+=

TOK_SUB_EQ 

-=

TOK_LSH_EQ 

<<=

TOK_RSH_EQ 

>>=

TOK_AND_EQ 

&=

TOK_XOR_EQ 

^=

TOK_IOR_EQ 

|=

TOK_OR_OR 

||

TOK_AND_AND 

&&

TOK_EQL 

==

TOK_NEQ 

!=

TOK_LEQ 

<=

TOK_GEQ 

>=

TOK_LSH 

<<

TOK_RSH 

TOK_DOT_STAR 

".*"

TOK_PTS_STAR 

->*

TOK_INCR 

++

TOK_DECR 

TOK_PTS 

->

TOK_COLON_COLON 

::

TOK_ELLIPSIS 

"..."

TOK_FIRST_CORE 

Core token group separator for the scanner!

TOK_LAST_CORE 
TOK_ASM 

asm

TOK_AUTO 

auto

TOK_BREAK 

break

TOK_CASE 

case

TOK_CHAR 

char

TOK_CONST 

const

TOK_CONTINUE 

continue

TOK_DEFAULT 

default

TOK_DO 

do

TOK_DOUBLE 

double

TOK_ELSE 

else

TOK_ENUM 

enum

TOK_EXTERN 

extern

TOK_FLOAT 

float

TOK_FOR 

for

TOK_GOTO 

goto

TOK_IF 

if

TOK_INLINE 

inline

TOK_INT 

int

TOK_LONG 

long

TOK_REGISTER 

register

TOK_RESTRICT 

restrict

TOK_RETURN 

return

TOK_SHORT 

short

TOK_SIGNED 

signed

TOK_SIZEOF 

sizeof

TOK_STATIC 

static

TOK_STRUCT 

struct

TOK_SWITCH 

switch

TOK_TYPEDEF 

typedef

TOK_UNION 

union

TOK_UNSIGNED 

unsigned

TOK_VOID 

void

TOK_VOLATILE 

volatile

TOK_WHILE 

while

TOK_FIRST_C 

C token group separator for the scanner!

TOK_LAST_C 
TOK_ASM_2 

__asm

TOK_INLINE_2 

__inline

TOK_FIRST_EXT_C 

Common C extension token group separator for the scanner!

TOK_LAST_EXT_C 
TOK_ALIGNOF 

__alignof

TOK_ALIGNOF_2 

__alignof

TOK_ALIGNOF_3 

alignof

TOK_ASM_3 

asm

TOK_C_BOOL 

_Bool

TOK_CONST_2 

__const

TOK_CONST_3 

const

TOK_INLINE_3 

inline

TOK_INT128 

__int128

TOK_OFFSETOF 

__builtin_offsetof

TOK_RESTRICT_2 

__restrict

TOK_RESTRICT_3 

restrict

TOK_SIGNED_2 

__signed

TOK_SIGNED_3 

signed

TOK_VOLATILE_2 

__volatile

TOK_VOLATILE_3 

volatile

TOK_THREAD 

__thread

TOK_TYPEOF 

typeof

TOK_TYPEOF_2 

__typeof

TOK_TYPEOF_3 

typeof

TOK_TYPEOF_4 

__decltype

TOK_ATTRIBUTE 

attribute

TOK_EXTENSION 

extension

TOK_PSV 

psv

TOK_PMP 

pmp

TOK_LABEL 

label

TOK_EXTERNAL 

external

TOK_FIRST_GNUC 

GNU C extension token group separator for the scanner!

TOK_LAST_GNUC 
TOK_INT64 

__int64

TOK_CDECL 

_cdecl

TOK_CDECL_2 

__cdecl

TOK_STDCALL 

_stdcall

TOK_STDCALL_2 

__stdcall

TOK_FASTCALL 

_fastcall

TOK_FASTCALL_2 

__fastcall

TOK_IF_EXISTS 

__if_exists

TOK_IF_NOT_EXISTS 

__if_not_exists

TOK_FIRST_VC 

Visual C/C++ extension token group separator for the scanner!

TOK_LAST_VC 
TOK_BOOL_VAL 

true, false

TOK_BOOL 

bool

TOK_CATCH 

catch

TOK_CLASS 

class

TOK_CONST_CAST 

const_cast

TOK_DELETE 

delete

TOK_DYN_CAST 

dynamic_cast

TOK_EXPLICIT 

explicit

TOK_EXPORT 

export

TOK_FRIEND 

friend

TOK_MUTABLE 

mutable

TOK_NAMESPACE 

namespace

TOK_NEW 

new

TOK_OPERATOR 

operator

TOK_PRIVATE 

private

TOK_PROTECTED 

protected

TOK_PUBLIC 

public

TOK_REINT_CAST 

reinterpret_cast

TOK_STAT_CAST 

static_cast

TOK_TEMPLATE 

template

TOK_THIS 

this

TOK_THROW 

throw

TOK_TRY 

try

TOK_TYPEID 

typeid

TOK_TYPENAME 

typename

TOK_USING 

using

TOK_VIRTUAL 

virtual

TOK_WCHAR_T 

wchar_t

TOK_AND_AND_ISO_646 

and

TOK_AND_EQ_ISO_646 

and_eq

TOK_AND_ISO_646 

bitand

TOK_OR_ISO_646 

bitor

TOK_TILDE_ISO_646 

compl

TOK_NOT_ISO_646 

not

TOK_NEQ_ISO_646 

not_eq

TOK_OR_OR_ISO_646 

or

TOK_IOR_EQ_ISO_646 

or_eq

TOK_ROOF_ISO_646 

xor

TOK_XOR_EQ_ISO_646 

xor_eq

TOK_FIRST_CC 

C++ token group separator for the scanner!

TOK_LAST_CC 
TOK_WCHAR_T_2 

__wchar_t

TOK_FIRST_EXT_CC 

Common C++ extension token group separator for the scanner!

TOK_LAST_EXT_CC 
TOK_FIRST_GNUCC 

GNU C++ extension token group separator for the scanner!

TOK_LAST_GNUCC 
TOK_HAS_NOTHROW_ASSIGN 

__has_nothrow_assign

TOK_HAS_NOTHROW_COPY 

__has_nothrow_copy

TOK_HAS_NOTHROW_CTOR 

__has_nothrow_constructor

TOK_HAS_TRIVIAL_ASSIGN 

__has_trivial_assign

TOK_HAS_TRIVIAL_COPY 

__has_trivial_copy

TOK_HAS_TRIVIAL_CTOR 

__has_trivial_constructor

TOK_HAS_TRIVIAL_DTOR 

__has_trivial_destructor

TOK_HAS_VIRTUAL_DTOR 

__has_virtual_destructor

TOK_IS_ABSTRACT 

__is_abstract

TOK_IS_BASE_OF 

__is_base_of

TOK_IS_CLASS 

__is_class

TOK_IS_EMPTY 

__is_empty

TOK_IS_ENUM 

__is_enum

TOK_IS_POD 

__is_pod

TOK_IS_TRIVIAL 

__is_trivial

TOK_IS_POLYMORPHIC 

__is_polymorphic

TOK_IS_UNION 

__is_union

TOK_FIRST_TYPETRAIT 

GNU C++ extension token group separator for the scanner!

TOK_LAST_TYPETRAIT 
TOK_STATIC_ASSERT 

static_assert

TOK_FIRST_CC1X 

C++1X extension token group separator for the scanner!

TOK_LAST_CC1X 
TOK_POINTCUT 

pointcut

TOK_ASPECT 

aspect

TOK_ADVICE 

advice

TOK_SLICE 

slice

TOK_UNKNOWN_T 

unknown_t

TOK_FIRST_AC 

AspectC++ extension token group separator for the scanner!

TOK_LAST_AC 
TOK_ID 

Any identifier that is not a keyword.

TOK_EPSILON 

Epsilon.

TOK_NO 

Number of known token types.

◆ CWildcardTokens

Types of wildcard tokens.

These types can be compared to Puma::Token::type().

Enumerator
TOK_WC_AND 
TOK_WC_OR 
TOK_WC_XOR 
TOK_WC_SEQ 
TOK_WC_IF 
TOK_WC_ELIF 
TOK_WC_ENDIF 
TOK_WC_NOT 
TOK_WC_EXACT 
TOK_WC_FIRST 
TOK_WC_LAST 
TOK_WC_LEAF 
TOK_WC_PRUNE 
TOK_WC_COLLECT 
TOK_WC_NODENAME 
TOK_WC_ELEMENT 
TOK_DO_EXPR 
TOK_DO_EXPR_LIST 
TOK_DO_ID_EXPR 
TOK_DO_IDENTIFIER 
TOK_DO_DECL_SPEC 
TOK_DO_DECL_SPEC_SEQ 
TOK_DO_INIT_DECLARATOR_LIST 
TOK_DO_INIT_DECLARATOR 
TOK_DO_DECLARATOR 
TOK_DO_INIT 
TOK_DO_ARG_DECL_SEQ 
TOK_DO_FCT_BODY 
TOK_DO_CLASS_SPEC 
TOK_DO_MEMBER_SPEC 
TOK_DO_MEMBER_DECL 
TOK_DO_BASE_CLAUSE 
TOK_DO_CTOR_INIT 
TOK_DO_MEM_INIT 
TOK_DO_STMT 
TOK_DO_STMT_SEQ 
TOK_ANY_EXPR 
TOK_ANY_EXPR_LIST 
TOK_ANY_ID_EXPR 
TOK_ANY_IDENTIFIER 
TOK_ANY_DECL_SPEC 
TOK_ANY_DECL_SPEC_SEQ 
TOK_ANY_INIT_DECLARATOR_LIST 
TOK_ANY_INIT_DECLARATOR 
TOK_ANY_DECLARATOR 
TOK_ANY_INIT 
TOK_ANY_ARG_DECL_SEQ 
TOK_ANY_FCT_BODY 
TOK_ANY_CLASS_SPEC 
TOK_ANY_MEMBER_SPEC 
TOK_ANY_MEMBER_DECL 
TOK_ANY_BASE_CLAUSE 
TOK_ANY_CTOR_INIT 
TOK_ANY_MEM_INIT 
TOK_ANY_STMT 
TOK_ANY_STMT_SEQ 
TOK_WC_IS_CLASS 
TOK_WC_IS_ENUM 
TOK_WC_IS_TYPEDEF 

◆ DirEntryType

SysCall.h Puma/SysCall.h Directory entry types.

Enumerator
DET_REGULAR 

Regular file.

DET_DIRECTORY 

Directory.

DET_LINK 

Symbolic link.

DET_OTHER 

Other kind of directory entry.

DET_NOT_IMPLEMENTED 

Not implemented directory entry type.

◆ ManipIgnoreMask

Enumerator
MIM_NONE 
MIM_UNBALANCED 
MIM_MACRO 

◆ ManipMode

Enumerator
MM_NO_MACRO_MANIP 
MM_EXPAND_MACROS 

◆ PreMacroOpTokens

Enumerator
TOK_MO_HASH 
TOK_MO_HASHHASH 

Function Documentation

◆ clean()

template<int N>
void Puma::clean ( )
inline

Short-cut function for calling method clean() on the corresponding fixed size memory block pool instance.

Template Parameters
NThe block size.

◆ endMessage()

void Puma::endMessage ( ErrorSink err)

Finish the current error message on the given error sink.

Parameters
errThe error sink.

◆ endu()

std::ostream& Puma::endu ( std::ostream &  outs)
inline

End-of-unit stream manipulator.

Triggers scanning the C/C++ source code stream.

Parameters
outsThe Puma::CUnit stream object.

◆ endvm()

std::ostream& Puma::endvm ( std::ostream &  outs)
inline

Finish a VerboseMgr message and write it on the destination output stream if the verbosity level is not yet reached.

Parameters
outsThe VerboseMgr stream.
Returns
A reference to the input VerboseMgr stream.

◆ free()

template<int N>
void Puma::free ( void *  block)
inline

Constant size memory block pool variant of free().

Template Parameters
NThe block size.
Parameters
blockPointer to the memory block to free.

◆ malloc()

template<int N>
void* Puma::malloc ( )
inline

Constant size memory block pool variant of malloc().

Template Parameters
NThe block size.
Returns
A pointer to the memory block.

◆ operator<<() [1/4]

std::ostream& Puma::operator<< ( std::ostream &  os,
const Printable object 
)
inline

Output stream operator for Printable objects.

Parameters
osThe output stream.
objectThe object to print.
Returns
A reference to the output stream.

◆ operator<<() [2/4]

std::ostream& Puma::operator<< ( std::ostream &  os,
const Token object 
)
inline

◆ operator<<() [3/4]

std::ostream& Puma::operator<< ( std::ostream &  out,
const CExprValue ev 
)
inline

◆ operator<<() [4/4]

std::ostream& Puma::operator<< ( std::ostream &  out,
const Location location 
)
inline

Output stream operator to print the given location on the given output stream.

Parameters
outThe output stream.
locationThe location to print.
Returns
A reference to the output stream.

◆ utf8_encode()

void Puma::utf8_encode ( LONG_LONG  i,
char *&  p,
long int &  ct 
)

◆ utf8_scan()

LONG_LONG Puma::utf8_scan ( const char *&  s,
bool  eight_digits 
)

Variable Documentation

◆ CTYPE_BOOL

CTypePrimitive Puma::CTYPE_BOOL

bool

◆ CTYPE_C_BOOL

CTypePrimitive Puma::CTYPE_C_BOOL

_Bool

◆ CTYPE_CHAR

CTypePrimitive Puma::CTYPE_CHAR

char

◆ CTYPE_DOUBLE

CTypePrimitive Puma::CTYPE_DOUBLE

double

◆ CTYPE_ELLIPSIS

CTypePrimitive Puma::CTYPE_ELLIPSIS

Any type.

◆ CTYPE_EMPTY

CTypeInfo Puma::CTYPE_EMPTY

Empty type.

◆ CTYPE_FLOAT

CTypePrimitive Puma::CTYPE_FLOAT

float

◆ CTYPE_INT

CTypePrimitive Puma::CTYPE_INT

int

◆ CTYPE_INT128

CTypePrimitive Puma::CTYPE_INT128

__int128

◆ CTYPE_LONG

CTypePrimitive Puma::CTYPE_LONG

long

◆ CTYPE_LONG_DOUBLE

CTypePrimitive Puma::CTYPE_LONG_DOUBLE

long double

◆ CTYPE_LONG_LONG

CTypePrimitive Puma::CTYPE_LONG_LONG

long long

◆ CTYPE_SHORT

CTypePrimitive Puma::CTYPE_SHORT

short

◆ CTYPE_SIGNED_CHAR

CTypePrimitive Puma::CTYPE_SIGNED_CHAR

signed char

◆ CTYPE_UNDEFINED

CTypePrimitive Puma::CTYPE_UNDEFINED

Undefined type.

◆ CTYPE_UNKNOWN_T

CTypePrimitive Puma::CTYPE_UNKNOWN_T

unknown_t

◆ CTYPE_UNSIGNED_CHAR

CTypePrimitive Puma::CTYPE_UNSIGNED_CHAR

unsigned char

◆ CTYPE_UNSIGNED_INT

CTypePrimitive Puma::CTYPE_UNSIGNED_INT

unsigned int

◆ CTYPE_UNSIGNED_INT128

CTypePrimitive Puma::CTYPE_UNSIGNED_INT128

unsigned __int128

◆ CTYPE_UNSIGNED_LONG

CTypePrimitive Puma::CTYPE_UNSIGNED_LONG

unsigned long

◆ CTYPE_UNSIGNED_LONG_LONG

CTypePrimitive Puma::CTYPE_UNSIGNED_LONG_LONG

unsigned long long

◆ CTYPE_UNSIGNED_SHORT

CTypePrimitive Puma::CTYPE_UNSIGNED_SHORT

unsigned short

◆ CTYPE_VOID

CTypePrimitive Puma::CTYPE_VOID

void

◆ CTYPE_WCHAR_T

CTypePrimitive Puma::CTYPE_WCHAR_T

wchar_t

◆ sev_error

const ErrorSeverity Puma::sev_error

An error.

◆ sev_fatal

const ErrorSeverity Puma::sev_fatal

A fatal error.

◆ sev_message

const ErrorSeverity Puma::sev_message

Informal message.

◆ sev_none

const ErrorSeverity Puma::sev_none

Error has no severity.

◆ sev_warning

const ErrorSeverity Puma::sev_warning

A warning.

◆ TRACE_SCOPES

int Puma::TRACE_SCOPES