Skip to content

Commit 839440a

Browse files
committed
Added parser-error-msg handling to main
1 parent 376baf9 commit 839440a

File tree

1 file changed

+51
-14
lines changed

1 file changed

+51
-14
lines changed

DiffBackend/src/main.lisp

Lines changed: 51 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -17,21 +17,23 @@
1717
(defparameter *comment-table-2* nil)
1818
(defparameter *lex-errors-msgs-1* nil)
1919
(defparameter *lex-errors-msgs-2* nil)
20+
(defparameter *parser-error-msg-1* nil)
21+
(defparameter *parser-error-msg-2* nil)
2022
(defparameter *lexems-1* nil)
2123
(defparameter *lexems-2* nil)
2224

2325
(defun main ()
2426
(let ((cmd-args (uiop:command-line-arguments)))
25-
(print cmd-args)
2627
(differ-v01 (first cmd-args) (second cmd-args))))
2728

28-
2929
(defun differ-v01 (file1 file2)
3030
(init-stats)
3131
(let (*comment-table-1*
3232
*comment-table-2*
3333
*lex-errors-msgs-1*
3434
*lex-errors-msgs-2*
35+
*parser-error-msg-1*
36+
*parser-error-msg-2*
3537
*lexems-1*
3638
*lexems-2*)
3739
(multiple-value-bind (res1 res2)
@@ -44,6 +46,8 @@
4446
*comment-table-2*
4547
*lex-errors-msgs-1*
4648
*lex-errors-msgs-2*
49+
*parser-error-msg-1*
50+
*parser-error-msg-2*
4751
*lexems-1*
4852
*lexems-2*)
4953
(multiple-value-bind (res1 res2)
@@ -59,20 +63,30 @@
5963
(with-open-file (stream "comments2.json" :direction :output
6064
:if-exists :supersede)
6165
(get-json-comments *comment-table-2* stream)))
62-
(when *lex-errors-msgs-1*
66+
(when *lexems-1*
6367
(with-open-file (stream "lexems1.json" :direction :output
64-
:if-exists :supersede)
68+
:if-exists :supersede)
6569
(get-lexems-json *lexems-1* stream))
66-
(with-open-file (stream "lexer-errors-msgs1.json" :direction :output
67-
:if-exists :supersede)
68-
(get-lexer-errors-msgs-json *lex-errors-msgs-1* stream)))
69-
(when *lex-errors-msgs-2*
70+
(when *lex-errors-msgs-1*
71+
(with-open-file (stream "lexer-errors-msgs1.json" :direction :output
72+
:if-exists :supersede)
73+
(get-lexer-errors-msgs-json *lex-errors-msgs-1* stream)))
74+
(when *parser-error-msg-1*
75+
(with-open-file (stream "parser-error-msg1.json" :direction :output
76+
:if-exists :supersede)
77+
(get-parser-error-msg-json *parser-error-msg-1* stream))) )
78+
(when *lexems-2*
7079
(with-open-file (stream "lexems2.json" :direction :output
71-
:if-exists :supersede)
80+
:if-exists :supersede)
7281
(get-lexems-json *lexems-2* stream))
73-
(with-open-file (stream "lexer-errors-msgs2.json" :direction :output
74-
:if-exists :supersede)
75-
(get-lexer-errors-msgs-json *lex-errors-msgs-2* stream)))
82+
(when *lex-errors-msgs-2*
83+
(with-open-file (stream "lexer-errors-msgs2.json" :direction :output
84+
:if-exists :supersede)
85+
(get-lexer-errors-msgs-json *lex-errors-msgs-2* stream)))
86+
(when *parser-error-msg-2*
87+
(with-open-file (stream "parser-error-msg2.json" :direction :output
88+
:if-exists :supersede)
89+
(get-parser-error-msg-json *parser-error-msg-2* stream))))
7690
(when (and res1 res2)
7791
(with-open-file (stream "res1.json" :direction :output
7892
:if-exists :supersede)
@@ -90,6 +104,8 @@
90104
*comment-table-2*
91105
*lex-errors-msgs-1*
92106
*lex-errors-msgs-2*
107+
*parser-error-msg-1*
108+
*parser-error-msg-2*
93109
*lexems-1*
94110
*lexems-2*)
95111
(multiple-value-bind (res1 res2)
@@ -109,6 +125,16 @@
109125
(get-lexer-errors-msgs-json *lex-errors-msgs-2* t)
110126
(format t "~%Lexems-1:~%")
111127
(get-lexems-json *lexems-2* t))
128+
(when *parser-error-msg-1*
129+
(format t "~%Parser-error-msg-1:~%")
130+
(get-parser-error-msg-json *parser-error-msg-1* t)
131+
(format t "~%Lexems-1:~%")
132+
(get-lexems-json *lexems-1* t))
133+
(when *parser-error-msg-2*
134+
(format t "~%Parser-error-msg-2:~%")
135+
(get-parser-error-msg-json *parser-error-msg-2* t)
136+
(format t "~%Lexems-2:~%")
137+
(get-lexems-json *lexems-2* t))
112138
(when (and res1 res2)
113139
(format t "~%Res1:~%")
114140
(get-json-res res1 out1)
@@ -146,5 +172,16 @@
146172
(setf *lex-errors-msgs-2* lex-errors)
147173
(setf *lexems-2* res-lexems))
148174
(t (error "Error value of cur-file")))
149-
(return-from get-abstract-sem-tree-from-string nil))
150-
(abstract-sem-tree-gen (parser res-lexems) :curr-file cur-file)))
175+
(return-from get-abstract-sem-tree-from-string nil))
176+
(multiple-value-bind (res-syn-tree parser-error)
177+
(parser res-lexems)
178+
(when parser-error
179+
(cond ((= cur-file 1)
180+
(setf *parser-error-msg-1* parser-error)
181+
(setf *lexems-1* res-lexems))
182+
((= cur-file 2)
183+
(setf *parser-error-msg-2* parser-error)
184+
(setf *lexems-2* res-lexems))
185+
(t (error "Error value of cur-file")))
186+
(return-from get-abstract-sem-tree-from-string nil))
187+
(abstract-sem-tree-gen res-syn-tree :curr-file cur-file))))

0 commit comments

Comments
 (0)