From 8b8ca0515fe6f68b774f766f7e4f49ec26ba6590 Mon Sep 17 00:00:00 2001 From: Darren Bane Date: Thu, 19 Nov 2020 23:50:27 +0000 Subject: Try fix loading error --- basic.lsp | 2 +- parse.lsp | 43 ------------------------------------------- parsing.lsp | 43 +++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 44 insertions(+), 44 deletions(-) delete mode 100644 parse.lsp create mode 100644 parsing.lsp diff --git a/basic.lsp b/basic.lsp index 7f13acd..11771e9 100644 --- a/basic.lsp +++ b/basic.lsp @@ -2,7 +2,7 @@ (require "abs-syn") (require "lex") -(require "parse") +(require "parsing") (defpackage #:basic (:use #:openlisp) (:export diff --git a/parse.lsp b/parse.lsp deleted file mode 100644 index 9bedee3..0000000 --- a/parse.lsp +++ /dev/null @@ -1,43 +0,0 @@ -(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") diff --git a/parsing.lsp b/parsing.lsp new file mode 100644 index 0000000..e79451a --- /dev/null +++ b/parsing.lsp @@ -0,0 +1,43 @@ +(defpackage #:parsing + (:use #:openlisp #:lex #:abs-syn) + (:export + #:parse)) +(in-package #:parsing) + +(defclass () () (:abstractp t)) +(defclass () ((expr :accessor expr))) +(defclass () ((bin-op :accessor bin-op))) +(defclass () ((unr-op :accessor unr-op))) +(defclass () ()) + +(defun unr-symb (s) + (cond ((string= s "!") 'not) + ((string= s "-") 'uminus) + (t (error "Parse error")))) + +(defun bin-symb (s) + (cond ((string= s "+") 'plus) + ((string= s "-") 'minus) + ((string= s "*") 'mult) + ((string= s "/") 'div) + ((string= s "%") 'mod) + ((string= s "=") 'equal) + ((string= s "<") 'less) + ((string= s "<=") 'lesseq) + ((string= s ">") 'great))) + +(defun parse (str) + (let* ((cl (init-lex str)) + (tok (lexer cl))) + (cond ((instancep tok (class )) + (create (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