osprey/libkapi/kapi_parse.c File Reference

#include <stdio.h>
#include <string.h>
#include <malloc.h>
#include <assert.h>
#include "kapi_parse.h"
#include "kapi_error.h"
#include "kapi_debug.h"
#include "kapi_internal.h"
#include "kapi_util.h"

Include dependency graph for kapi_parse.c:

Go to the source code of this file.

Defines

#define RETURN_FAIL_IF(cond)

Functions/Subroutines

static void AddEnums (stn_t *pstnType, valn_t *pvalnIdents, int fAllowRepeats)
static void AppendEnums (stn_t *pstnType, valn_t *pvalnIdents, int fAllowRepeats)
static int fMatch_valn_list (valn_t *pvalnList1, valn_t *pvalnList2, tty_t tty)
void pvalhdrCopy (valhdr_t *pvalhdrTarget, valhdr_t *pvalhdrSource)
int fFailCheckLimitValue (valhdr_t *pvalhdr, ed_t *ped)
int fFailCheckLimitValue2 (valn_t *pvalnCheck, valhdr_t *pvalhdrLimit)
void SetVariableValueLimit (valhdr_t *pvalhdr, limp_t *plimpNew)
static int posInEnumList (char *pch, valn_t *pvalnEnums)
static int fFailCheck (valhdr_t *pvalhdrRHS, ed_t *ped, stn_t *pstnLHS, char *)
static int fCheckIdenticalVal (valhdr_t *pvalhdrRHS, ed_t *pedRHSVal)
static int fEqual_val (val_t *pval1, val_t *pval2, tty_t tty)
static void KAPI2X_checkPortTypes (knobs_t *pknobs, stn_t *pstnArray, char *, valhdr_t *)
static void KAPI2X_update_cluster0Cutports (knobs_t *pknobs, stn_t *pstnType)
static void KAPI3X_update_cluster0Cutports (knobs_t *pknobs, stn_t *pstnArray, char *, valhdr_t *)
static void AddStringToAttr (stn_t *pstnAttr, char *pch)
void kapi_ParseFile (knobs_t *pknobs, FILE *fp)
void kapi_error ()
void pstnTypeInit (stn_t *pstnType)
static void DefineType (stn_t *pstnType, valn_t *pvalnIdents, limp_t *plimpList)
static valn_tpvalnRemoveEnums (stn_t *pstnType)
int fInEnumList (char *pch, valn_t *pvalnEnums)
static void RedefineVariable_scalar (stn_t *pstnType, stn_t *pstnVar)
void RedefineBitmask (valhdr_t *pvalhdr, tfi_t *ptfiBitmaskBaseType)
static void RedefineVariable_scalar_bitmask (stn_t *pstnType, stn_t *pstnVar)
static void RedefineVariable_array_elt (stn_t *pstnType, stn_t *pstnVar)
static void RedefineVariable_array_idx (stn_t *pstnType, stn_t *pstnVar)
static void RedefineVariable_array_elt_bitmask (stn_t *pstnType, stn_t *pstnVar)
static void RedefineVariable (stn_t *pstnType, valn_t *pvalnVar)
static void RedefineType (stn_t *pstnType, valn_t *pvalnIdents, limp_t *plimpList)
static int fIdenticalEnumTypeDefinition (stn_t *pstnType, valhdr_t *pvalhdrIdents)
void kapi_ProcessAppendDecl (stn_t *pstnType, valhdr_t *pvalhdrIdents)
void kapi_ProcessTypeDecl (stn_t *pstnType, valhdr_t *pvalhdrIdents, limp_t *plimpList)
int pstnEnum2idx (stn_t *pstnEnum)
void kapi_ProcessAttrDecl (stn_t *pstnAttr, char *pchAttr)
static int fExactTypeMatch (tfi_t *ptfi1, tfi_t *ptfi2)
static int fIdenticalVarDecl (stn_t *pstnVar, tfi_t *ptfi)
void kapi_ProcessVarDecl (stn_t *pstnVar, tfi_t *ptfi)
void TurnOnNoRedefine (tfi_t *ptfiBase, tredef_t tredef)
static int iEnumUpperGetRange (valhdr_t *pvalhdr)
static int iEnumLowerGetRange (valhdr_t *pvalhdr)
static int iUpperGetRange (valhdr_t *pvalhdr)
static int iLowerGetRange (valhdr_t *pvalhdr)
void ProcessNewLimits (stn_t *pstnLHSVar, limp_t *plimpNew)
void CheckTypeConformance (vfi_t *pvfiLHS, char *pchIndex, int fIndexAll, valhdr_t *pvalhdrRHS)
void ProcessArrayAssign (vfi_t *pvfiLHS, stn_t *pstnLHSVar, char *pchIndex, int fIndexAll, valhdr_t *pvalhdrRHS, limp_t *plimpNew, int fIdenticalVal)
void ProcessScalarAssign (vfi_t *pvfiLHS, stn_t *pstnLHSVar, char *pchIndex, int fIndexAll, valhdr_t *pvalhdrRHS, limp_t *plimpNew, int fIdenticalVal)
static int fIdenticalValues (stn_t *pstnLHSVar, char *pchIndex, int fIndexAll, valhdr_t *pvalhdrRHS)
void kapi_ProcessArithmeticAssignment (stn_t *pstnLHSVar, char *pchIndex, valhdr_t *pvalhdrRHS)
void kapi_ProcessAssignment (stn_t *pstnLHSVar, char *pchIndex, valhdr_t *pvalhdrRHS, limp_t *plimpNewList)
char * ity2pchname (ity_t ity)
void kapi_ProcessExpect (valhdr_t *pvalhdr, int typeexpect)
int kapi_ProcessIndex (stn_t *pstnIndex)
tfi_tkapi_ptfiConstructArray (tfi_t *ptfiIndexType, tfi_t *ptfiElt)
tfi_tkapi_ptfiConstructBitmask (tfi_t *ptfiBaseType)
tfi_tkapi_ptfiCheckDeclaredType (stn_t *pstnName)
tfi_tkapi_ptfiLookup (tty_t tty, void *pvoid)
void kapi_LookUpVariable_valhdr (stn_t *pstn, valhdr_t *pvalhdr, int iPos)
void kapi_LookUpIdent_valhdr (stn_t *pstn, valhdr_t *pvalhdr, int iPos)
valn_tkapi_pvalnReverseTmp (valn_t *pvalnList)
stn_tkapi_pstnReverseTmp (stn_t *pstnList)
void ProcessBitmaskExpr (valhdr_t *pvalhdrBitmask, valhdr_t *pvalhdrBits)
valn_tpvalnCopyList (valn_t *pvalnList)
valn_tpvalnMakeEnum (char *pch)
valn_tpvalnMakeString (char *pch)
valn_tpvalnMakeInt (int i)
valn_tpvalnMakeBitmask (void)
valn_tpvalnMakeReal (double d)
valn_tpvalnMakeArithmeticOp (char *pch)
valhdr_tpvalhdrMake (tty_t tty, vals_t vals, valn_t *pvalnList)
valn_tpvalnMakeIdent (char *pch)
limp_tplimpProcessLimitVariable (valhdr_t *pvalhdrTools, valhdr_t *pvalhdrValue)
limp_tplimpProcessLimitType (valhdr_t *pvalhdrToolList)
tfi_tptfiProcessArrayTypeSpec (stn_t *pstnIndexType, tfi_t *ptfi)
limp_tplimpLookup (limp_t *plimpList, char *pchToolname)
bv_tpbvBuild4valhdr (stn_t *pstnVar, valhdr_t *pvalhdr)
valn_tpvalnGetIth (valn_t *pvalnIn, int iIndex)
ed_tpedLookup4pstn (stn_t *pstnLHSVar, char *pchIndex)
int idxped4pstn (stn_t *pstnLHSVar, char *pchIndex)
ed_tpedLookup4ped (ed_t *pedList, char *pchIndex)
ed_tpedGetIth (stn_t *pstnLHSVar, int iIndex)
ed_tpedMake (char *pchIndexName, tfi_t *ptfi)
kapi_cluster_t clusterInterpretpchclr (char *pchClr)
kapi_ut_t utInterpretCportName (char *pchPort, int *pn)
kapi_ut_t utInterpretPortName (char *pchPort, int *pn)
void Declare_cluster0CportMask (stn_t *pstn)

Variables

tokval_t kapi_lval
int kapi_cLine
FILEyyin
char * yytext
knobs_tkapi_pknobsCurrent


Define Documentation

#define RETURN_FAIL_IF ( cond   ) 

Value:

if ( ( cond ) ) { \
      return( 0 ); \
   }

Referenced by fExactTypeMatch().


Function Documentation

static void AddEnums ( stn_t pstnType,
valn_t pvalnIdents,
int  fAllowRepeats 
) [static]

static void AddStringToAttr ( stn_t pstnAttr,
char *  pch 
) [static]

static void AppendEnums ( stn_t pstnType,
valn_t pvalnIdents,
int  fAllowRepeats 
) [static]

void CheckTypeConformance ( vfi_t pvfiLHS,
char *  pchIndex,
int  fIndexAll,
valhdr_t pvalhdrRHS 
)

kapi_cluster_t clusterInterpretpchclr ( char *  pchClr  ) 

Definition at line 2828 of file kapi_parse.c.

References assert, and strncmp().

Referenced by fOkProcessClusterDistance(), fOkProcessInterCluster(), and fOkProcessIntraCluster().

void Declare_cluster0CportMask ( stn_t pstn  ) 

static void DefineType ( stn_t pstnType,
valn_t pvalnIdents,
limp_t plimpList 
) [static]

static int fCheckIdenticalVal ( valhdr_t pvalhdrRHS,
ed_t pedRHSVal 
) [static]

static int fEqual_val ( val_t pval1,
val_t pval2,
tty_t  tty 
) [static]

static int fExactTypeMatch ( tfi_t ptfi1,
tfi_t ptfi2 
) [static]

static int fFailCheck ( valhdr_t pvalhdrRHS,
ed_t ped,
stn_t pstnLHS,
char *  pchIndex 
) [static]

int fFailCheckLimitValue ( valhdr_t pvalhdr,
ed_t ped 
)

int fFailCheckLimitValue2 ( valn_t pvalnCheck,
valhdr_t pvalhdrLimit 
)

static int fIdenticalEnumTypeDefinition ( stn_t pstnType,
valhdr_t pvalhdrIdents 
) [static]

static int fIdenticalValues ( stn_t pstnLHSVar,
char *  pchIndex,
int  fIndexAll,
valhdr_t pvalhdrRHS 
) [static]

static int fIdenticalVarDecl ( stn_t pstnVar,
tfi_t ptfi 
) [static]

int fInEnumList ( char *  pch,
valn_t pvalnEnums 
)

static int fMatch_valn_list ( valn_t pvalnList1,
valn_t pvalnList2,
tty_t  tty 
) [static]

int idxped4pstn ( stn_t pstnLHSVar,
char *  pchIndex 
)

static int iEnumLowerGetRange ( valhdr_t pvalhdr  )  [static]

static int iEnumUpperGetRange ( valhdr_t pvalhdr  )  [static]

static int iLowerGetRange ( valhdr_t pvalhdr  )  [static]

char* ity2pchname ( ity_t  ity  ) 

Definition at line 1765 of file kapi_parse.c.

References assert, ityATTRIBUTENAME, ityENUMCONST, ityTYPENAME, and ityVARNAME.

Referenced by fCheckExpectedValues(), and kapi_ProcessExpect().

static int iUpperGetRange ( valhdr_t pvalhdr  )  [static]

static void KAPI2X_checkPortTypes ( knobs_t pknobs,
stn_t pstnArray,
char *  pchIndex,
valhdr_t pvalhdrRHS 
) [static]

static void KAPI2X_update_cluster0Cutports ( knobs_t pknobs,
stn_t pstnType 
) [static]

static void KAPI3X_update_cluster0Cutports ( knobs_t pknobs,
stn_t pstnArray,
char *  pchIndex,
valhdr_t pvalhdrRHS 
) [static]

void kapi_error (  ) 

Definition at line 90 of file kapi_parse.c.

References fprintf(), and kapi_cLine.

void kapi_LookUpIdent_valhdr ( stn_t pstn,
valhdr_t pvalhdr,
int  iPos 
)

void kapi_LookUpVariable_valhdr ( stn_t pstn,
valhdr_t pvalhdr,
int  iPos 
)

void kapi_ParseFile ( knobs_t pknobs,
FILE fp 
)

void kapi_ProcessAppendDecl ( stn_t pstnType,
valhdr_t pvalhdrIdents 
)

void kapi_ProcessArithmeticAssignment ( stn_t pstnLHSVar,
char *  pchIndex,
valhdr_t pvalhdrRHS 
)

void kapi_ProcessAssignment ( stn_t pstnLHSVar,
char *  pchIndex,
valhdr_t pvalhdrRHS,
limp_t plimpNewList 
)

void kapi_ProcessAttrDecl ( stn_t pstnAttr,
char *  pchAttr 
)

void kapi_ProcessExpect ( valhdr_t pvalhdr,
int  typeexpect 
)

int kapi_ProcessIndex ( stn_t pstnIndex  ) 

void kapi_ProcessTypeDecl ( stn_t pstnType,
valhdr_t pvalhdrIdents,
limp_t plimpList 
)

void kapi_ProcessVarDecl ( stn_t pstnVar,
tfi_t ptfi 
)

stn_t* kapi_pstnReverseTmp ( stn_t pstnList  ) 

Definition at line 2017 of file kapi_parse.c.

References NULL, and _SYM_TABLE_NODE::pstnTempNext.

tfi_t* kapi_ptfiCheckDeclaredType ( stn_t pstnName  ) 

tfi_t* kapi_ptfiConstructArray ( tfi_t ptfiIndexType,
tfi_t ptfiElt 
)

tfi_t* kapi_ptfiConstructBitmask ( tfi_t ptfiBaseType  ) 

tfi_t* kapi_ptfiLookup ( tty_t  tty,
void pvoid 
)

valn_t* kapi_pvalnReverseTmp ( valn_t pvalnList  ) 

Definition at line 1999 of file kapi_parse.c.

References NULL, and _VALUE_NODE::pvalnNext.

Referenced by kapi_ProcessArithmeticAssignment().

bv_t* pbvBuild4valhdr ( stn_t pstnVar,
valhdr_t pvalhdr 
)

ed_t* pedGetIth ( stn_t pstnLHSVar,
int  iIndex 
)

ed_t* pedLookup4ped ( ed_t pedList,
char *  pchIndex 
)

ed_t* pedLookup4pstn ( stn_t pstnLHSVar,
char *  pchIndex 
)

ed_t* pedMake ( char *  pchIndexName,
tfi_t ptfi 
)

limp_t* plimpLookup ( limp_t plimpList,
char *  pchToolname 
)

limp_t* plimpProcessLimitType ( valhdr_t pvalhdrToolList  ) 

limp_t* plimpProcessLimitVariable ( valhdr_t pvalhdrTools,
valhdr_t pvalhdrValue 
)

static int posInEnumList ( char *  pch,
valn_t pvalnEnums 
) [static]

Definition at line 2678 of file kapi_parse.c.

References _VALUE::pch, _VALUE_NODE::pvalnNext, strcmp(), and _VALUE_NODE::val.

Referenced by pbvBuild4valhdr().

void ProcessArrayAssign ( vfi_t pvfiLHS,
stn_t pstnLHSVar,
char *  pchIndex,
int  fIndexAll,
valhdr_t pvalhdrRHS,
limp_t plimpNew,
int  fIdenticalVal 
)

void ProcessBitmaskExpr ( valhdr_t pvalhdrBitmask,
valhdr_t pvalhdrBits 
)

void ProcessNewLimits ( stn_t pstnLHSVar,
limp_t plimpNew 
)

void ProcessScalarAssign ( vfi_t pvfiLHS,
stn_t pstnLHSVar,
char *  pchIndex,
int  fIndexAll,
valhdr_t pvalhdrRHS,
limp_t plimpNew,
int  fIdenticalVal 
)

int pstnEnum2idx ( stn_t pstnEnum  ) 

void pstnTypeInit ( stn_t pstnType  ) 

tfi_t* ptfiProcessArrayTypeSpec ( stn_t pstnIndexType,
tfi_t ptfi 
)

void pvalhdrCopy ( valhdr_t pvalhdrTarget,
valhdr_t pvalhdrSource 
)

valhdr_t* pvalhdrMake ( tty_t  tty,
vals_t  vals,
valn_t pvalnList 
)

valn_t* pvalnCopyList ( valn_t pvalnList  ) 

Definition at line 2104 of file kapi_parse.c.

References malloc, NULL, _VALUE_NODE::pvalnNext, and _VALUE_NODE::val.

Referenced by pvalhdrCopy().

valn_t* pvalnGetIth ( valn_t pvalnIn,
int  iIndex 
)

Definition at line 2698 of file kapi_parse.c.

References i, and _VALUE_NODE::pvalnNext.

Referenced by pedGetIth().

valn_t* pvalnMakeArithmeticOp ( char *  pch  ) 

valn_t* pvalnMakeBitmask ( void   ) 

Definition at line 2161 of file kapi_parse.c.

References malloc, memset, NULL, and _VALUE_NODE::pvalnNext.

valn_t* pvalnMakeEnum ( char *  pch  ) 

valn_t* pvalnMakeIdent ( char *  pch  ) 

valn_t* pvalnMakeInt ( int  i  ) 

valn_t* pvalnMakeReal ( double  d  ) 

Definition at line 2173 of file kapi_parse.c.

References malloc, memset, NULL, _VALUE_NODE::pvalnNext, _VALUE::r, and _VALUE_NODE::val.

valn_t* pvalnMakeString ( char *  pch  ) 

static valn_t* pvalnRemoveEnums ( stn_t pstnType  )  [static]

void RedefineBitmask ( valhdr_t pvalhdr,
tfi_t ptfiBitmaskBaseType 
)

static void RedefineType ( stn_t pstnType,
valn_t pvalnIdents,
limp_t plimpList 
) [static]

static void RedefineVariable ( stn_t pstnType,
valn_t pvalnVar 
) [static]

static void RedefineVariable_array_elt ( stn_t pstnType,
stn_t pstnVar 
) [static]

static void RedefineVariable_array_elt_bitmask ( stn_t pstnType,
stn_t pstnVar 
) [static]

static void RedefineVariable_array_idx ( stn_t pstnType,
stn_t pstnVar 
) [static]

static void RedefineVariable_scalar ( stn_t pstnType,
stn_t pstnVar 
) [static]

static void RedefineVariable_scalar_bitmask ( stn_t pstnType,
stn_t pstnVar 
) [static]

void SetVariableValueLimit ( valhdr_t pvalhdr,
limp_t plimpNew 
)

void TurnOnNoRedefine ( tfi_t ptfiBase,
tredef_t  tredef 
)

Definition at line 945 of file kapi_parse.c.

References _TYPE_FIELDS::tredefStatus, and tredefSTATUS_OK.

Referenced by ProcessNewLimits().

kapi_ut_t utInterpretCportName ( char *  pchPort,
int *  pn 
)

Definition at line 2844 of file kapi_parse.c.

References NULL, and utInterpretPortName().

Referenced by fOkProcessInterCluster(), fOkProcessIntraCluster(), and ParseIntraCluster().

kapi_ut_t utInterpretPortName ( char *  pchPort,
int *  pn 
)


Variable Documentation

Definition at line 39 of file kapi_parse.c.

Definition at line 45 of file kapi_parse.c.

char* yytext


Generated on Wed Apr 8 15:57:10 2009 for Open64 by  doxygen 1.5.6