summaryrefslogtreecommitdiff
path: root/src/package.lisp
diff options
context:
space:
mode:
authorriton <riton@riton.home>2025-07-15 23:45:18 +0300
committerriton <riton@riton.home>2025-07-15 23:45:18 +0300
commita31668c560e211f64501e6b640c823824bd1b100 (patch)
tree58115d027bd876791d1f603432ff1a10465ace6c /src/package.lisp
parent1c90d9ae3b84f62168337f3c8b1c3854f6198330 (diff)
added parserHEADmaster
Squashed commit of the following: commit 744b32488bfd56193e22d5144c41b8fc0b08705e Author: riton <riton@riton.home> Date: Tue Jul 15 23:27:11 2025 +0300 parse function literals and call expressions commit 46e04e75efeed277b9bd102348e3eebb2d42f762 Author: riton <riton@riton.home> Date: Tue Jul 15 21:17:00 2025 +0300 parse if expressions commit 19bfdae150be2a3fa72f9d030f169355e8a9c035 Author: riton <riton@riton.home> Date: Tue Jul 15 20:21:48 2025 +0300 don't need (emit bool) because generic handles it commit 1b6953a608c18a26244c52fcc455809982d0b616 Author: riton <riton@riton.home> Date: Tue Jul 15 20:13:39 2025 +0300 parse grouped expr, return and let statements commit be480aed29ce5d2ad72677f6ae0abebf16d9ad0e Author: riton <riton@riton.home> Date: Tue Jul 15 19:49:54 2025 +0300 parse infix expressions commit 70859a54c500ace8541f2e4d56c580b3b13824bc Author: riton <riton@riton.home> Date: Tue Jul 15 18:27:38 2025 +0300 parse booleans and prefix expressions commit bb9e53dbfe39fd53e57837795b81e425f9028883 Author: riton <riton@riton.home> Date: Tue Jul 15 17:15:23 2025 +0300 start parser
Diffstat (limited to 'src/package.lisp')
-rw-r--r--src/package.lisp31
1 files changed, 30 insertions, 1 deletions
diff --git a/src/package.lisp b/src/package.lisp
index 6f05abe..cf8ce51 100644
--- a/src/package.lisp
+++ b/src/package.lisp
@@ -11,6 +11,8 @@
(:use #:common-lisp #:utilities)
(:shadow #:type)
(:export #:token
+ #:literal
+ #:type
#:type-is
#:token=
#:make
@@ -24,7 +26,34 @@
(defpackage #:lexer
(:use #:common-lisp #:utilities)
- (:export #:make #:lex))
+ (:export #:make #:lex #:next-token))
+
+(defpackage #:ast
+ (:use #:common-lisp #:utilities)
+ (:export #:node
+ #:stringify
+ #:token-literal
+ #:emit
+ #:statement
+ #:expression
+ #:program
+ #:statements
+ #:identifier
+ #:integer-literal
+ #:prefix-expression #:right
+ #:expression-statement
+ #:boolean-expression
+ #:infix-expression
+ #:let-statement #:name #:value
+ #:return-statement #:return-value
+ #:if-expression
+ #:block-statement
+ #:function-literal
+ #:call-expression #:args))
+
+(defpackage #:parser
+ (:use #:common-lisp #:utilities)
+ (:export #:make #:parse-program))
(defpackage #:monkey/test
(:use #:common-lisp #:utilities))