Start: V Terminal: addr copy store load gep Productions: F -> ( copy M ? ) *; Fbar -> ( M ? copybar ) *; M -> addr V addrbar; V -> Fbar V F | gepbar_i V gep_i | M | epsilon | gepbar_i Memcpy gep_i | gep_i Memcpy gepbar_i | ArrayPath V gep_0; ArrayPath -> gepbar_0 gepbar_0 | ArrayPath gepbar_0; Memcpy -> addrbar V addr | gep_i Memcpy gepbar_i | F Memcpy Fbar;