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