a8be9efcd3
Rework CLI compilation so that all of the argument parsing is written to
...
the .tm.c file and the runner program is *just* a single function call
to the function that parses args and runs the main function. Also
improved some CLI usage error code
2024-09-05 14:38:37 -04:00
e6aea8c130
Add support for custom HELP for CLI tools
2024-09-05 13:57:48 -04:00
443af763f4
Trim excess blank lines before feeding to indent
2024-09-05 12:51:53 -04:00
e1d0927744
Fix 'empty' clause for integer iteration
2024-09-05 12:44:01 -04:00
34d98f067e
For big or arbitrarily big integers not known to be constant, do full
...
Int$plus(a,b) logic so it's definitely correct and doesn't error.
2024-09-05 12:41:13 -04:00
e91b53f070
Improve codegen for loops by not adding extra braces and just using the
...
integer literal for 64-bit ints when iterating over a numeric value
2024-09-05 12:28:28 -04:00
d801681026
Add early outs for (or) and (and) reducers
2024-09-05 11:51:07 -04:00
0d3c8e16bc
Add iteration-over-comprehension optimization
2024-09-05 11:23:00 -04:00
8d41b2b1fb
Do the extremely obvious optimization of checking if two pieces of data
...
are at the same location before bothering to compare them
2024-09-05 10:31:35 -04:00
d3c4f613ac
Update to reflect code growth
2024-09-05 04:00:15 -04:00
41e4ddb973
Clear out some CRLF cruft
2024-09-05 03:58:20 -04:00
73df39ff7e
Fix stability of concatenation
2024-09-05 03:47:15 -04:00
e3cc4f88e0
Be extra correct about prefix codepoints
2024-09-05 02:56:56 -04:00
fa5ca582ff
Clean up some imports
2024-09-05 02:37:45 -04:00
f5140086ae
Dynamically grow synthetic grapheme array
2024-09-05 02:32:09 -04:00
719c387118
Fix up handling of synthetic graphemes, also document how they work
2024-09-05 02:25:21 -04:00
e2118b7407
Better enum messaging for CLI arg parsing
2024-09-04 21:33:06 -04:00
3a556296b6
Add Text:repeat()
2024-09-04 21:22:03 -04:00
00543b4e87
Add Text.map(pat, fn)
2024-09-04 21:02:37 -04:00
93140c2896
Document CLI parsing
2024-09-04 16:29:18 -04:00
453c3610f9
Support parsing enums (without members)
2024-09-04 16:21:27 -04:00
3513b94fc7
Unify parsing code to correctly handle parsing integers and numbers with
...
a &success boolean. Check for overflow as well.
2024-09-04 16:08:34 -04:00
973b1c55c2
Fix array CLI arguments
2024-09-04 15:30:38 -04:00
e9796e1433
Improve command line parsing (no more cords)
2024-09-04 15:23:23 -04:00
11b484a6a2
Document ask()
2024-09-04 15:03:54 -04:00
05bc754679
Add ask() as a way to get user input
2024-09-04 14:55:00 -04:00
570c4c63ca
Remove readline dependency
2024-09-04 14:36:23 -04:00
0d098c118b
Add automatic --help
to print usage
2024-09-04 14:34:24 -04:00
f99e94c532
Document {nl}
2024-09-04 14:13:42 -04:00
716c30d592
Add nl/newline/clrf pattern
2024-09-04 14:12:41 -04:00
0a3b3bf9eb
Fix const correctness
2024-09-04 13:50:59 -04:00
ac507da537
Remove unused code path for >> f := use ./foo.tm
2024-09-04 13:49:41 -04:00
d1b2e9f598
Disallow 'use' statements that aren't top level
2024-09-04 13:48:26 -04:00
f605df8230
Minor codegen cleanup
2024-09-04 13:37:00 -04:00
97a964aa86
Implicit filename for table getting
2024-09-04 05:05:31 -04:00
af15e89303
For arrays, use implicit filename from macro
2024-09-04 05:04:45 -04:00
1092185c84
Improve codegen by making test() even more concise
2024-09-04 05:01:21 -04:00
85f1210b1a
Bugfix
2024-09-04 04:34:31 -04:00
79c1e8f989
Don't put __SOURCE_FILE__ in header
2024-09-04 03:04:42 -04:00
e0aca8fa72
Add method for getting a length-based string as Text
2024-09-04 03:02:30 -04:00
c3f8b40c84
Document empty tables/arrays
2024-09-04 01:57:34 -04:00
df844946f7
Add Text:matches() for convenience and performance
2024-09-04 00:34:27 -04:00
ec688c11bb
Clean up codegen so $Foo"..." comes out as foo$Foo("...") instead of
...
Text("...")
2024-09-04 00:18:03 -04:00
fbb7bee68b
Don't bold DSL text
2024-09-03 23:55:11 -04:00
805082d299
Minor codegen cleanup Texts(...)
2024-09-03 23:35:42 -04:00
f60edfbe7f
Improve codegen for doctests a little bit by using __SOURCE_FILE__ macro
...
and making assignments use (x = 4, &x) syntax instead of ({ x = 4; &x })
2024-09-03 23:32:02 -04:00
b8bb4ada8b
Add recursive mode to text replacement and update docs
2024-09-03 23:16:45 -04:00
02dbcbf8b5
Update docs
2024-09-03 22:59:36 -04:00
850fc8fbe1
Clean up text replacement API to use backrefs instead of match_chain()
2024-09-03 22:56:53 -04:00
79b48365d6
Add comments
2024-09-03 21:34:29 -04:00