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
wash
440561cb39
parse: implement parsing of semicolon-delimited statement lists
2026-05-12 22:52:48 +01:00
wash
cc450da31e
parse: lex: support tokens terminating multiple lex states in certain circumstances
2026-05-12 22:51:45 +01:00
wash
e3b92fe4f2
parse: lex: fix scanning of sub-expressions and fstrings in statement mode
2026-05-12 22:51:15 +01:00
wash
b2190dd4d0
parse: lex: improve scanning of more complex redirection expressions
2026-05-12 22:48:57 +01:00
wash
3dd5f12ee5
parse: lex: fix string state not terminating when encountering a dquote
2026-05-12 22:48:08 +01:00
wash
721e0f851a
parse: lex: add a range of new symbol tokens
2026-05-12 22:47:29 +01:00
wash
dee4e5dbf7
parse: lex: fix arithmetic state handling dquote symbols incorrectly
2026-05-12 22:45:43 +01:00
wash
39125cea50
parse: lex: switch from arithmetic to statement when scanning =, |, and \n
2026-05-12 22:45:05 +01:00
wash
7ddc140dbf
parse: lex: fix arithmetic state not scanning operator tokens
2026-05-12 22:44:33 +01:00
wash
a408b9efa2
parse: lex: move per-state token settings to state source files
2026-05-11 23:57:35 +01:00
wash
0c21be8d67
parse: lex: add proper data-driven state-machine functionality
...
movement between lexer states is now defined (almost) exclusively
by a table of outgoing links defined for each state type.
the main lexer system uses this table to determine when, how, and to
where the state should be changed.
also add a dedicated lexer state for scanning hashtables, due to the
particularly unique rules that apply within.
2026-05-11 23:02:02 +01:00
wash
304eb80e0d
bshell: add debug output support for operator tokens
2026-05-10 19:15:41 +01:00
wash
ffdb28ba22
parse: lex: replace expression scanner with statement; implement complex-word scanner
...
also fix a bunch of scanning edge-cases
2026-05-10 19:14:24 +01:00
wash
7aa2aee5bd
parse: lex: implement recording coordinates of lex tokens
2026-05-10 19:13:29 +01:00
wash
7071630af8
parse: lex: add flags for lexer states
2026-05-10 19:10:14 +01:00
wash
f5d847736a
bshell.vim: fix highlighting of nested parentheses in string interpolation
2026-05-10 14:20:40 +01:00
wash
94048c6508
doc: sample: add/update sample script files
2026-05-10 14:20:08 +01:00