From 6e7cdcd4280f5330229ec9c943b9caf090846452 Mon Sep 17 00:00:00 2001 From: Darren Bane Date: Wed, 18 Nov 2020 23:59:17 +0000 Subject: Checkpointing from my Mac --- parse.lsp | 43 +++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 43 insertions(+) create mode 100644 parse.lsp (limited to 'parse.lsp') diff --git a/parse.lsp b/parse.lsp new file mode 100644 index 0000000..9bedee3 --- /dev/null +++ b/parse.lsp @@ -0,0 +1,43 @@ +(defpackage #:parse + (:use #:openlisp #:lex #:abs-syn) + (:export + #:parse)) +(in-package #:parse) + +(defclass () () (:abstractp t)) +(defclass () ((expr :accessor expr))) +(defclass () ((bin-op :accessor bin-op))) +(defclass () ((unr-op :accessor unr-op))) +(defclass (") 'great))) + +(defun parse (str) + (let* ((cl (init-lex str)) + (tok (lexer cl))) + (cond ((instancep tok (class )) + (make-instance (class ) 'n n 'c (parse-cmd cl))) + ((instancep tok (class )) + (cond ((string= (ident tok) "LIST") + (create (class ))) + ((string= (ident tok) "RUN") + (create (class ))) + ((string= (ident tok) "END") + (create (class ))) + (t (error "Parse error")))) + (t (error "Parse error"))))) +(provide "parse") -- cgit 1.4.1-2-gfad0