Add FFI to untyped parser

This commit is contained in:
Yiyun Liu 2025-05-24 14:03:50 -04:00
parent 1507c6c40f
commit bb0e9f68a8
3 changed files with 29 additions and 11 deletions

11
ast.rkt
View file

@ -1,5 +1,4 @@
#lang typed/racket
(define-type ConId Integer)
(define-type Arity Integer)
(define-type Let ( 'let 'letrec))
@ -17,3 +16,13 @@
(List Let (Pair (Bind A) (Listof (Bind A))) (Expr A))
(List 'case (Expr A) (Pair (Alt A) (Listof (Alt A))))
(List 'λ (Pair Name (Listof Name)) (Expr A))))
(define-type (ScDefn A) (List 'define (Pair Name (Listof A)) (Expr A)))
(define-type (Program A) (Pair (ScDefn A) (Listof (ScDefn A))))
(define-type CoreExpr (Expr Name))
(define-type CoreScDefn (ScDefn Name))
(define-type CoreProgram (Program Name))
(define-type CoreBind (Bind Name))
(define-type CoreAlt (Alt Name))
(provide CoreExpr CoreScDefn CoreProgram CoreBind CoreAlt Expr Bind Alt Name Let Arity ConId)