Commit Graph

49 Commits

Author SHA1 Message Date
174d51ca1c
Auto-generate the AST. 2023-09-04 22:13:58 -07:00
f06ea93dc4
Significant progress on AST codegen. 2023-09-04 18:38:09 -07:00
edec706ed4
Fix NodeType hierarchy. 2023-09-04 03:09:09 -07:00
e49ad7c4ba
fn -> func in README 2023-09-04 03:04:36 -07:00
bfd24154a8
Fix README 2023-09-04 02:39:40 -07:00
4aa516f0fb
Fix some overqualifications due to IDE renaming. 2023-09-04 02:38:09 -07:00
3545aa076f
Introduce the requirement of let for assignment. 2023-09-04 02:33:13 -07:00
128f40bcf4
Split out all code into modules. 2023-09-04 01:56:24 -07:00
d46ea1e307
Multi-module arrangement and the start of AST generation. 2023-09-03 23:15:21 -07:00
bf3967544a
Complex import sample and support for import dependency cycles. 2023-09-03 02:41:02 -07:00
4f567eb287
Exportable functions, common frontend, and scoped imports. 2023-09-03 02:26:21 -07:00
7a771980e0
Prepare for CFE. 2023-09-03 01:11:27 -07:00
d572a5c732
Well that's a bad mistake. 2023-09-02 23:35:28 -07:00
ed5bbec004
Implement a very dumb import system. 2023-09-02 23:28:40 -07:00
e7be1f622d
fn -> func 2023-09-02 21:07:59 -07:00
b1f9e02253
Declaration based compilation units. 2023-09-02 20:22:08 -07:00
04c78c35e0
Enhanced indention support. 2023-09-02 19:38:27 -07:00
62ba662a91
Fix attribution of tokens. 2023-09-02 17:01:56 -07:00
941b201549
Define node visitor order based on parsing order. 2023-09-02 15:11:25 -07:00
900e3f1a1c
Implement token node attribution and a Dart compiler. 2023-08-30 03:54:44 -07:00
743bc00bab
Cleanup parser and extract common logic. 2023-08-30 03:15:13 -07:00
7f0b9ca8e3
Meta tokenizer. 2023-08-25 23:55:09 -07:00
1c300b6109
Remove unused supression. 2023-08-23 23:10:20 -07:00
ddde99f38d
String literal support. 2023-08-22 21:58:56 -07:00
c418694307
Implement frontend layer to simplify cli commands. 2023-08-22 19:54:21 -07:00
4ec53e1209
Implement AST serialization. 2023-08-21 23:31:40 -07:00
05cb52bc32
Add reprint command to regenerate program from AST. 2023-08-21 23:17:30 -07:00
1445490770
An actual command line tool to run pork programs. 2023-08-21 23:08:56 -07:00
e12b51e8a7
Implement syntax highlighter. 2023-08-21 20:15:31 -07:00
95fe6e9abb
Add support for not equals (!=) infix operation. 2023-08-21 02:34:33 -07:00
0b3700667d
Add support for line comments. 2023-08-21 02:22:43 -07:00
5455846d7a
Add support for block comments. 2023-08-21 02:15:52 -07:00
5f4d74008e
Add check to make sure re-parsed AST is equal. 2023-08-21 00:59:55 -07:00
1de73ed855
AST equals and hashCode 2023-08-21 00:58:05 -07:00
d92dc8d904
Restructure AST to make roles more clear. 2023-08-21 00:47:14 -07:00
624b05605a
Validate token soundness. 2023-08-21 00:29:14 -07:00
ce1e262c05
Tokenizer now always produces whitespace, parser ignores whitespace, and token DSL. 2023-08-21 00:14:58 -07:00
ccd10343c3
Implement negation operator. 2023-08-20 22:35:44 -07:00
90df76ca33
Simple syntax example. 2023-08-20 22:25:45 -07:00
c5d0881893
Ensure that whitespace preservation in the tokenizer produces exact results. 2023-08-20 00:54:28 -07:00
72163a2aa6
Implement token promotion. 2023-08-20 00:48:10 -07:00
77329541fa
WIP simple KotlinCompiler 2023-08-20 00:14:35 -07:00
77a9136be7
Optional whitespace preservation. 2023-08-19 22:20:45 -07:00
903f730d51
Support if without else. 2023-08-19 20:59:14 -07:00
cccea9c2ca
If Statement Support 2023-08-19 20:40:31 -07:00
f1645d0924
Cleanup TokenType 2023-08-19 17:00:28 -07:00
ef4045ecb4
Utilize CallableFunction to avoid Java dependency. 2023-08-19 16:58:34 -07:00
7bec148d79
Rename context to scope. 2023-08-19 16:52:40 -07:00
6494858f02
Initial Commit 2023-08-19 15:34:10 -07:00