김덕환
가입: 2005년 8월 29일 올린 글: 190
|
올려짐: 2005년10월12일 13:56 주제: 숙제3-1 "K- 실행기 II"의 exp 타입 |
|
|
언어 문법에서 ()가 제외되었으므로, KMINUS 모듈 인터페이스의 exp 타입 선언에서 UNIT을 제외하시기 바랍니다.
| 코드: |
type exp =
NUM of int
| TRUE
| FALSE
| VAR of id
| ADD of exp * exp
| SUB of exp * exp
| MUL of exp * exp
| DIV of exp * exp
| EQUAL of exp * exp
| LESS of exp * exp
| NOT of exp
| ASSIGNV of id * exp (* assgin to variable *)
| ASSIGNF of exp * id * exp (* assign to record field *)
| ASSIGNG of exp * exp (* generic assign *)
| SEQ of exp * exp (* sequence *)
| IF2 of exp * exp * exp (* if-then-else *)
| IF1 of exp * exp (* if-then *)
| WHILE of exp * exp (* while loop *)
| FOR of id * exp * exp * exp (* for loop *)
| LETV of id * exp * exp (* variable binding *)
| LETF of id * id * exp * exp (* procedure binding *)
| CALLV of id * exp (* call by value *)
| CALLR of id * id (* call by referenece *)
| RECORD of (id * exp) list (* record construction *)
| FIELD of exp * id (* record field selection *)
| MALLOC of exp (* malloc *)
| AMPER of id (* &x *)
| STAR of exp (* *E *)
| READ of id
| WRITE of exp
|
|
|