diff options
author | riton <riton@riton.home> | 2025-07-15 23:45:18 +0300 |
---|---|---|
committer | riton <riton@riton.home> | 2025-07-15 23:45:18 +0300 |
commit | a31668c560e211f64501e6b640c823824bd1b100 (patch) | |
tree | 58115d027bd876791d1f603432ff1a10465ace6c /src/package.lisp | |
parent | 1c90d9ae3b84f62168337f3c8b1c3854f6198330 (diff) |
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.lisp | 31 |
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)) |