## @file
# fragments of source file
#
#  Copyright (c) 2007 - 2018, Intel Corporation. All rights reserved.<BR>
#
#  SPDX-License-Identifier: BSD-2-Clause-Patent
#


## The description of comment contents and start & end position
#
#
class Comment :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #   @param  CommentType The type of comment (T_COMMENT_TWO_SLASH or T_COMMENT_SLASH_STAR).
    #
    def __init__(self, Str, Begin, End, CommentType):
        self.Content = Str
        self.StartPos = Begin
        self.EndPos = End
        self.Type = CommentType

## The description of preprocess directives and start & end position
#
#
class PP_Directive :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #
    def __init__(self, Str, Begin, End):
        self.Content = Str
        self.StartPos = Begin
        self.EndPos = End

## The description of predicate expression and start & end position
#
#
class PredicateExpression :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #
    def __init__(self, Str, Begin, End):
        self.Content = Str
        self.StartPos = Begin
        self.EndPos = End

## The description of function definition and start & end position
#
#
class FunctionDefinition :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #   @param  LBPos       The left brace position tuple.
    #
    def __init__(self, ModifierStr, DeclStr, Begin, End, LBPos, NamePos):
        self.Modifier = ModifierStr
        self.Declarator = DeclStr
        self.StartPos = Begin
        self.EndPos = End
        self.LeftBracePos = LBPos
        self.NamePos = NamePos

## The description of variable declaration and start & end position
#
#
class VariableDeclaration :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  NamePos     The name position tuple.
    #
    def __init__(self, ModifierStr, DeclStr, Begin, NamePos):
        self.Modifier = ModifierStr
        self.Declarator = DeclStr
        self.StartPos = Begin
        self.NameStartPos = NamePos

## The description of enum definition and start & end position
#
#
class EnumerationDefinition :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #
    def __init__(self, Str, Begin, End):
        self.Content = Str
        self.StartPos = Begin
        self.EndPos = End

## The description of struct/union definition and start & end position
#
#
class StructUnionDefinition :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #
    def __init__(self, Str, Begin, End):
        self.Content = Str
        self.StartPos = Begin
        self.EndPos = End

## The description of 'Typedef' definition and start & end position
#
#
class TypedefDefinition :
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #
    def __init__(self, FromStr, ToStr, Begin, End):
        self.FromType = FromStr
        self.ToType = ToStr
        self.StartPos = Begin
        self.EndPos = End

class FunctionCalling:
    ## The constructor
    #
    #   @param  self        The object pointer
    #   @param  Str         The message to record
    #   @param  Begin       The start position tuple.
    #   @param  End         The end position tuple.
    #
    def __init__(self, Name, Param, Begin, End):
        self.FuncName = Name
        self.ParamList = Param
        self.StartPos = Begin
        self.EndPos = End