Commit Graph

  • 14b3f4c6e9 minimal: pork-rt minimal runtime alex 2023-09-11 02:34:28 -04:00
  • 0881924c65 <WIP> language: preliminary support for separation of statements semijaaj a_dinosaur 2023-09-11 16:24:36 +10:00
  • 2ee1565fb5 native: pass argument specs in order to support varadic ffi alex 2023-09-11 01:12:32 -04:00
  • 8d310e337a language: add unary plus & minus, post increment & decrement operators, non-newline print builtin. fix block comments (#4) a dinosaur 2023-09-11 14:34:10 +10:00
  • c3afd790b5 repository: add editorconfig dotfile (#5) a dinosaur 2023-09-11 14:33:51 +10:00
  • f6d2fc5165 idea: comment highlighting support alex 2023-09-10 22:07:38 -04:00
  • 1be098d1c9 idea: rename gay.pizza.pork.intellij to gay.pizza.pork.idea alex 2023-09-10 20:56:04 -04:00
  • 7b4257d719 ast: default value support in generation alex 2023-09-10 20:54:48 -04:00
  • 033da5b2ea stdlib: generate stdlib.manifest alex 2023-09-10 20:47:50 -04:00
  • e8c984f2dc language: prelude and internal functions, and varargs support alex 2023-09-10 19:27:59 -04:00
  • 1cfb197a7f ensure new lines exist on all files alex 2023-09-10 04:37:30 -04:00
  • 3ed9350cd2 github: graal windows and darwin builds alex 2023-09-10 03:18:52 -04:00
  • 71999032ac language: var, reassign, comparison operators alex 2023-09-10 04:34:50 -04:00
  • f433ba2776 ast: generate graph alex 2023-09-10 02:34:02 -04:00
  • 0bc3128b9d support: basic idea plugin alex 2023-09-10 01:27:53 -04:00
  • c77fd3a8a8 branding: add vector logo brand a_dinosaur 2023-09-10 14:53:31 +10:00
  • 0024a8b141 language: euclidean modulo and remainder infix operators (#3) a dinosaur 2023-09-10 12:41:20 +10:00
  • 03c278f5b1 ffi: add c-style char* strings as a supported return type (#2) a dinosaur 2023-09-10 12:31:48 +10:00
  • 4a9508ddc4 tool: cleaner println built-in (#1) a dinosaur 2023-09-10 12:20:56 +10:00
  • 3a43b56fcd evaluator: cache native function resolution alex 2023-09-09 01:51:04 -04:00
  • e8766323ee language: floating point support alex 2023-09-09 00:08:30 -04:00
  • bf474f6b69 evaluator: introduce and expose scope tracking alex 2023-09-08 00:04:36 -07:00
  • 38efbe1844 ffi: java interop improvements alex 2023-09-07 18:16:47 -07:00
  • a2f2252965 ffi: autogen java bindings (very wip) alex 2023-09-07 01:51:50 -07:00
  • 540826fb6e ffi: shorthand for some java types alex 2023-09-07 01:07:43 -07:00
  • 953679b859 ffi: support for java native functions alex 2023-09-07 01:03:01 -07:00
  • 81296ee1d1 imports are now python style with a twist: forms! import std ffi and import local myfile alex 2023-09-06 22:43:03 -07:00
  • 0e4362eefb add a standard library, and introduce formed imports (import std "myfile.pork") alex 2023-09-06 21:39:57 -07:00
  • f31e12df89 ffi example: use c as library specifier alex 2023-09-06 19:08:32 -07:00
  • 236f812caf while loop support, and native functions (including ffi!) alex 2023-09-06 19:07:28 -07:00
  • ddff6cb365 language: today, we killed lambdas alex 2023-09-05 19:37:23 -07:00
  • 073ea09b13 ast codegen: optional support for inlining visit alex 2023-09-05 18:59:42 -07:00
  • 9f90e05d8a ast: utilize extension functions to prevent larger stack frames from default interface methods alex 2023-09-05 14:04:39 -07:00
  • 290d8d0f0a evaluator: optimize the cost of defining a variable in a scope alex 2023-09-05 03:13:43 -07:00
  • 63a90a599c evaluator: functions now use their own evaluation visitor alex 2023-09-05 02:42:15 -07:00
  • 9634a735ee evaluator: ensure function definitions use root scope alex 2023-09-05 02:20:46 -07:00
  • 725137c82f tool: add support for measuring runtime of a program alex 2023-09-05 01:49:19 -07:00
  • 2631b6752b evaluator: inherit fast cache for calls to functions in a function definition alex 2023-09-05 01:43:59 -07:00
  • 65f61fcd90 evaluator: implement an elaborate system that should mean that recursive functions don't require reaching far up the stack alex 2023-09-05 01:35:27 -07:00
  • cc23789203 evaluator: prevent double lookup when looking up value in a scope alex 2023-09-05 01:09:26 -07:00
  • 7de8f8cd63 Prepare for benchmarking and profiling. alex 2023-09-05 01:02:13 -07:00
  • 2f0ee43556 tool: use absolute path for root alex 2023-09-04 22:46:36 -07:00
  • e7f36e0524 Fix -march=compatibility for GraalVM alex 2023-09-04 22:33:38 -07:00
  • 174d51ca1c Auto-generate the AST. alex 2023-09-04 21:50:27 -07:00
  • f06ea93dc4 Significant progress on AST codegen. alex 2023-09-04 18:38:09 -07:00
  • edec706ed4 Fix NodeType hierarchy. alex 2023-09-04 03:09:09 -07:00
  • e49ad7c4ba fn -> func in README alex 2023-09-04 03:04:36 -07:00
  • bfd24154a8 Fix README alex 2023-09-04 02:39:40 -07:00
  • 4aa516f0fb Fix some overqualifications due to IDE renaming. alex 2023-09-04 02:38:09 -07:00
  • 3545aa076f Introduce the requirement of let for assignment. alex 2023-09-04 02:33:13 -07:00
  • 128f40bcf4 Split out all code into modules. alex 2023-09-04 01:56:24 -07:00
  • d46ea1e307 Multi-module arrangement and the start of AST generation. alex 2023-09-03 23:15:21 -07:00
  • bf3967544a Complex import sample and support for import dependency cycles. alex 2023-09-03 02:41:02 -07:00
  • 4f567eb287 Exportable functions, common frontend, and scoped imports. alex 2023-09-03 02:26:21 -07:00
  • 7a771980e0 Prepare for CFE. alex 2023-09-03 01:11:27 -07:00
  • d572a5c732 Well that's a bad mistake. alex 2023-09-02 23:35:28 -07:00
  • ed5bbec004 Implement a very dumb import system. alex 2023-09-02 23:28:40 -07:00
  • e7be1f622d fn -> func alex 2023-09-02 21:07:59 -07:00
  • b1f9e02253 Declaration based compilation units. alex 2023-09-02 20:22:08 -07:00
  • 04c78c35e0 Enhanced indention support. alex 2023-09-02 19:38:27 -07:00
  • 62ba662a91 Fix attribution of tokens. alex 2023-09-02 17:01:56 -07:00
  • 941b201549 Define node visitor order based on parsing order. alex 2023-09-02 15:11:25 -07:00
  • 900e3f1a1c Implement token node attribution and a Dart compiler. alex 2023-08-30 03:54:14 -07:00
  • 743bc00bab Cleanup parser and extract common logic. alex 2023-08-30 03:14:53 -07:00
  • 7f0b9ca8e3 Meta tokenizer. alex 2023-08-25 23:55:09 -07:00
  • 1c300b6109 Remove unused supression. alex 2023-08-23 23:10:20 -07:00
  • ddde99f38d String literal support. alex 2023-08-22 21:58:56 -07:00
  • c418694307 Implement frontend layer to simplify cli commands. alex 2023-08-22 19:54:21 -07:00
  • 4ec53e1209 Implement AST serialization. alex 2023-08-21 23:31:40 -07:00
  • 05cb52bc32 Add reprint command to regenerate program from AST. alex 2023-08-21 23:17:30 -07:00
  • 1445490770 An actual command line tool to run pork programs. alex 2023-08-21 23:08:56 -07:00
  • e12b51e8a7 Implement syntax highlighter. alex 2023-08-21 20:15:31 -07:00
  • 95fe6e9abb Add support for not equals (!=) infix operation. alex 2023-08-21 02:34:33 -07:00
  • 0b3700667d Add support for line comments. alex 2023-08-21 02:22:43 -07:00
  • 5455846d7a Add support for block comments. alex 2023-08-21 02:15:52 -07:00
  • 5f4d74008e Add check to make sure re-parsed AST is equal. alex 2023-08-21 00:59:55 -07:00
  • 1de73ed855 AST equals and hashCode alex 2023-08-21 00:58:05 -07:00
  • d92dc8d904 Restructure AST to make roles more clear. alex 2023-08-21 00:47:14 -07:00
  • 624b05605a Validate token soundness. alex 2023-08-21 00:29:14 -07:00
  • ce1e262c05 Tokenizer now always produces whitespace, parser ignores whitespace, and token DSL. alex 2023-08-21 00:14:58 -07:00
  • ccd10343c3 Implement negation operator. alex 2023-08-20 22:35:07 -07:00
  • 90df76ca33 Simple syntax example. alex 2023-08-20 22:25:45 -07:00
  • c5d0881893 Ensure that whitespace preservation in the tokenizer produces exact results. alex 2023-08-20 00:54:28 -07:00
  • 72163a2aa6 Implement token promotion. alex 2023-08-20 00:48:10 -07:00
  • 77329541fa WIP simple KotlinCompiler alex 2023-08-20 00:14:35 -07:00
  • 77a9136be7 Optional whitespace preservation. alex 2023-08-19 22:20:45 -07:00
  • 903f730d51 Support if without else. alex 2023-08-19 20:59:14 -07:00
  • cccea9c2ca If Statement Support alex 2023-08-19 20:40:31 -07:00
  • f1645d0924 Cleanup TokenType alex 2023-08-19 17:00:28 -07:00
  • ef4045ecb4 Utilize CallableFunction to avoid Java dependency. alex 2023-08-19 16:58:34 -07:00
  • 7bec148d79 Rename context to scope. alex 2023-08-19 16:52:40 -07:00
  • 6494858f02 Initial Commit alex 2023-08-19 15:29:07 -07:00