Nuprl Definition : C_TYPE-of-LVALUE
C_TYPE-of-LVALUE(env;lval) ==
  case lval is  
  Ground(loc) => env loc  
  aval[idx] => let r = case of aval in if isl(r)
               then if C_Array?(outl(r))
                    then if 0 ≤z idx ∧b idx <z C_Array-length(outl(r)) then inl C_Array-elems(outl(r)) else inr ⋅  fi 
                    else inr ⋅ 
                    fi 
               else inr ⋅ 
               fi   
  sval.comp =>  let r2 = case of sval in if isl(r2)
               then if C_Struct?(outl(r2)) then apply-alist(AtomDeq;C_Struct-fields(outl(r2));comp) else inr ⋅  fi 
               else inr ⋅ 
               fi )
Definitions occuring in Statement : 
C_LVALUE_ind: C_LVALUE_ind, 
C_Array-elems: C_Array-elems(v), 
C_Array-length: C_Array-length(v), 
C_Array?: C_Array?(v), 
C_Struct-fields: C_Struct-fields(v), 
C_Struct?: C_Struct?(v), 
apply-alist: apply-alist(eq;L;x), 
atom-deq: AtomDeq, 
le_int: i ≤z j, 
band: p ∧b q, 
outl: outl(x), 
ifthenelse: if b then t else f fi , 
isl: isl(x), 
lt_int: i <z j, 
it: ⋅, 
apply: f a, 
inr: inr x , 
inl: inl x, 
natural_number: $n
FDL editor aliases : 
C_TYPE-of-LVALUE
Latex:
C\_TYPE-of-LVALUE(env;lval)  ==
    case  lval  is    
    Ground(loc)  =>  env  loc    
    aval[idx]  =>  let  r  =  case  of  aval  in  if  isl(r)
                              then  if  C\_Array?(outl(r))
                                        then  if  0  \mleq{}z  idx  \mwedge{}\msubb{}  idx  <z  C\_Array-length(outl(r))
                                                  then  inl  C\_Array-elems(outl(r))
                                                  else  inr  \mcdot{}  
                                                  fi  
                                        else  inr  \mcdot{}  
                                        fi  
                              else  inr  \mcdot{}  
                              fi      
    sval.comp  =>    let  r2  =  case  of  sval  in  if  isl(r2)
                              then  if  C\_Struct?(outl(r2))
                                        then  apply-alist(AtomDeq;C\_Struct-fields(outl(r2));comp)
                                        else  inr  \mcdot{}  
                                        fi  
                              else  inr  \mcdot{}  
                              fi  )
 Date html generated: 
2016_05_16-AM-08_48_08
 Last ObjectModification: 
2011_09_19-PM-07_18_02
Theory : C-semantics
Home
Index