Commit Graph

74 Commits

Author SHA1 Message Date
c4368f24fc allow lines to start with | (pipes) 2025-11-10 07:15:41 -08:00
c244435ae2 add $. w/ shrimp runtime info 2025-11-10 01:04:13 -08:00
b400f48676 Chained DotGet, meta.script.name. Doesn't work for numbers (row.2.1) yet 2025-11-10 01:04:13 -08:00
970ceeb8b0 import dict only=something 2025-11-09 20:07:22 -08:00
e2f5024a4c add import keyword for importing keys of dicts into local scope 2025-11-09 20:07:21 -08:00
ba5ce0a88c octal numbers 0o644 2025-11-09 17:43:32 -08:00
69bbe17992 "add double quoted strings" 2025-11-08 16:14:08 -08:00
63ee57e7f0 curly -> Curly 2025-11-08 16:13:39 -08:00
503ca41155 { curly strings } 2025-11-08 16:13:28 -08:00
019f7d84b1 Add ?? and ??= operators 2025-11-08 16:12:20 -08:00
7bbf43a725 bitwise operators 2025-11-08 16:10:13 -08:00
c741cfee51 hex and binary numbers 2025-11-08 16:05:28 -08:00
7e69356f79 allow _ in numbers (10_000_000) 2025-11-08 16:00:25 -08:00
45f31d0678 allow newlines in (some) parens expressions 2025-11-08 11:26:46 -08:00
4590d66105 '#comments are comments too, but not hash#in#words' 2025-11-08 08:09:58 -08:00
Chris Wanstrath
890eb811b9 pipe atoms/literals to functions 2025-11-07 15:17:29 -08:00
061452a334 Better names 2025-11-06 10:22:37 -08:00
290ac59cee Update parser stuff 2025-11-05 16:19:20 -08:00
f57b1c985e NBD 2025-11-05 10:28:57 -08:00
7bcd582dc6 what have i done 2025-11-03 20:25:42 -08:00
e68624b608 elseif -> else if 2025-11-03 20:16:15 -08:00
950eef0e69 no more single vs multiline blocks 2025-11-03 20:07:34 -08:00
dc557deb40 Collapse all blocks into SingleLineBlock and MultiLineBlock 2025-11-03 19:55:41 -08:00
ee0e6c6c41 Add some grammar aliases for readability 2025-11-03 19:51:43 -08:00
5f4bf60062 while loops 2025-11-03 19:29:19 -08:00
fa034d4bd4 only constant values can be defaults 2025-11-02 16:52:20 -08:00
1791e5a6c7 parse defaults 2025-11-02 14:04:32 -08:00
f14013aa55 allow - in named args 2025-11-01 07:50:21 -07:00
2fa432ea3f Update generated files 2025-10-31 10:08:15 -07:00
789481f4ef [a b] = [1 2 3] 2025-10-29 19:13:03 -07:00
1053a5ff52 Make dot-get work in the compiler AND with parens exprs 2025-10-29 13:19:47 -07:00
0dbba4d847 allow conditionals at statement-level 2025-10-29 11:21:16 -07:00
34305b473e switch back to using == 2025-10-29 11:18:47 -07:00
fd197a2dfc fix or/and chaining 2025-10-29 11:14:11 -07:00
ced190488a Add % operator 2025-10-29 10:58:48 -07:00
982054eb54 [a=1 b=2 c=3] and [=] (empty dict) 2025-10-28 21:10:33 -07:00
7da4c14962 parse arrays 2025-10-28 16:30:45 -07:00
c032192d61 Functions returned by parens expr can be called 2025-10-27 15:17:38 -07:00
318142dfbb Update shrimp.ts 2025-10-27 12:45:59 -07:00
972fd25fda update params scope detection, add array.1 (dotget array indices) 2025-10-26 22:23:46 -07:00
abd7d2e43b DotGet function calls 2025-10-26 16:28:56 -07:00
035ec47885 allow func defs in parens 2025-10-25 17:22:26 -07:00
5234ad9a73 better stuff 2025-10-25 09:53:45 -07:00
d306d58b2f now it is do 2025-10-24 14:04:50 -07:00
7077762738 great stuff 2025-10-24 14:02:29 -07:00
66671970e0 i did things 2025-10-24 10:17:06 -07:00
82cd199ed8 wip 2025-10-22 11:23:11 -07:00
b2c5db77b2 feat(parser): add AssignableIdentifier token type to grammar
🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 18:33:35 -07:00
8a29090364 fix(parser): make DotGet whitespace-sensitive
- Add IdentifierBeforeDot token emitted when identifier immediately precedes '.'
- Move DotGet into @skip {} block using IdentifierBeforeDot
- Prevents 'basename . prop' from parsing as DotGet
- Allows 'basename.prop' to work as expected when identifier is in scope
- Fixes test: 'a word can be contained in parens'

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 10:40:28 -07:00
d894713744 feat(parser): complete DotGet implementation with scope tracking
- Fixed tokenizer input.read() to use absolute positions
- Fixed FN_KEYWORD term ID (33 after DotGet added to expression)
- Added DotGet to expression for use as function argument
- All 8 DotGet tests passing

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-10-17 07:42:07 -07:00