Commit Graph

128 Commits

Author SHA1 Message Date
wash f2e1d89313 runtime: update iterator usage 2026-05-25 19:14:52 +01:00
wash 6bfe3f0a6e core: update iterator usage 2026-05-25 19:14:45 +01:00
wash edfb3e24a3 bshell: re-organise build into three separate components
bshell: the front-end binary
bshell.runtime: contains the parser, compiler, and classes needed to run bshell scripts
bshell.core: contains the builtin commandlets and aliases
2026-05-25 10:33:29 +01:00
wash 58c76a1f57 meta: update clang-format config 2026-05-25 10:33:10 +01:00
wash d333497a03 meta: add clang-format config 2026-05-24 20:26:49 +01:00
wash 28f8c8f71c doc: sample: add/update sample source files 2026-05-24 20:26:40 +01:00
wash bb09e8b8d1 vim: add operator symbols and keywords 2026-05-24 20:26:29 +01:00
wash 446ee99306 build: add new sub-directories 2026-05-24 20:25:51 +01:00
wash 070a2be969 bshell: initialise verbs and table formatter on start 2026-05-24 20:25:36 +01:00
wash 862028f5a8 debug: update runtime opcode printing 2026-05-24 20:24:44 +01:00
wash d7443d7810 bshell: add an assembly instance to register builtin commands 2026-05-24 20:22:48 +01:00
wash f772f4ba20 alias: implement a set of builtin aliases 2026-05-24 20:22:30 +01:00
wash 0ee1a3575d cmdlet: implement a set of builtin cmdlets 2026-05-24 20:22:19 +01:00
wash 92e58ec7c6 runtime: implement opcodes to run commands and load/store variables and properties 2026-05-24 20:22:05 +01:00
wash 8f7a0b9fb8 runtime: add a class to represent variables and a data structure to store them 2026-05-24 20:21:39 +01:00
wash b6aeb8d4bf runtime: implement pipelines and an interface for calling commands 2026-05-24 20:21:06 +01:00
wash d8c694a43e command: add a hierarchy of classes to represent different types of commands 2026-05-24 20:20:06 +01:00
wash 4f65e3b9f2 format: implement tabular output of fx objects 2026-05-24 20:19:32 +01:00
wash c9cf6b229e bshell: add a class to manage cmdlet verbs 2026-05-24 20:18:12 +01:00
wash c3bf6dcee6 compile: implement compilation of doubles and arrays 2026-05-24 20:17:35 +01:00
wash e679c41725 compile: fstring: fix string elements being loaded at the wrong time 2026-05-24 20:17:13 +01:00
wash 30bfce5701 script-block: implement storing double values in constpool 2026-05-24 20:15:30 +01:00
wash e829c77297 file: update fx_array usage 2026-05-24 20:14:51 +01:00
wash ca8533334b ast: implement to_string for int and double nodes 2026-05-24 20:14:32 +01:00
wash fad13b5476 parse: lots of improvements 2026-05-24 20:13:55 +01:00
wash 82a035f5cc line-ed: update fx_array usage 2026-05-24 20:11:51 +01:00
wash 5a23da4cfe line-ed: add unicode support 2026-05-17 16:50:48 +01:00
wash 2f200e8d1b bshell: generate and evaluate bytecode for shell input 2026-05-17 15:35:22 +01:00
wash f629b05672 debug: implement printers for bytecode instructions and runtime values 2026-05-17 15:34:53 +01:00
wash 58b4bb2c51 runtime: temporary implementation of arithmetic bytecode evaluation 2026-05-17 15:34:24 +01:00
wash 0e8dc9cb6f bshell: implement bytecode generation for arithmetic expressions and if-statements 2026-05-17 15:33:48 +01:00
wash 2cee984092 runtime: add definitions for bshell vm bytecode 2026-05-17 15:33:20 +01:00
wash 1f8b9ff0d3 ast: implement post-order ast traversal 2026-05-17 15:32:19 +01:00
wash e490754625 bshell: add script-block class
bshell_scriptblock acts as a self-contained collection of executable bytecode and associated const value table.
2026-05-17 15:30:20 +01:00
wash 405686f6ec parse: make multi-line structure parsing more robust 2026-05-17 15:29:59 +01:00
wash d78f80a121 parse: lex: fix some state transition edge cases 2026-05-17 15:29:14 +01:00
wash 05dcf1f8b6 operator: add script-block pseudo-operator 2026-05-17 15:28:29 +01:00
wash 34114ca451 debug: add print support for new ast node types 2026-05-12 23:00:03 +01:00
wash 750e3df7d5 lang: add arithmetic operator definitions 2026-05-12 22:59:50 +01:00
wash 83189d4d9b ast: add lots of ast node definitions 2026-05-12 22:59:29 +01:00
wash 1ea3471f0d parse: implement parsing of complex command arguments 2026-05-12 22:58:59 +01:00
wash c4529d474a parse: implement parsing of arithmetic expressions and data structures 2026-05-12 22:58:48 +01:00
wash 227e73853c parse: implement parsing of function definitions 2026-05-12 22:57:49 +01:00
wash 7d2e45edcb parse: implement parsing of if-statements 2026-05-12 22:57:31 +01:00
wash 26e2a63200 parse: implement parsing of {...} statement blocks 2026-05-12 22:57:16 +01:00
wash 0cd7ca2dde parse: add a basic function to report parse errors 2026-05-12 22:56:40 +01:00
wash 5ce780e037 parse: add a range of internal parser definitions 2026-05-12 22:55:59 +01:00
wash 2235d8593b parse: lex: add a range of operator tokens 2026-05-12 22:54:50 +01:00
wash 64903c821c parse: lex: add missing lex ctx members 2026-05-12 22:54:17 +01:00
wash 39457aa7e6 parse: add some more generic token parser functions 2026-05-12 22:53:26 +01:00