+; Due to the non expression style syntax of procedures, this must be special cased
+(defun parse-procedure (tokens)
+ (when (not *in-structure*) (error "This doesn't make sense here"))
+ (multiple-value-bind (in-block after-block) (find-end tokens)
+ (declare (ignore in-block))
+ (cons
+ (cons
+ (car tokens)
+ nil) ; Update this to parsing the internal of the inblock)
+ (parse-internal after-block))))
+
+(defun find-end (tokens)
+ (cond
+ ((not tokens) (error "Failed to find end"))
+ ((eql :end (car tokens)) (values nil (cdr tokens)))
+ (t (multiple-value-bind (in-block after-block) (find-end (cdr tokens))
+ (values (cons (car tokens) in-block) after-block)))))
+
+; Used to populate dynamic-prims
+(defun determine-procedure-definition (tokens)
+ (declare (ignore tokens)))
+