Mattias Wadman
b3a09805a4
interp: Document bit opts funcs and add some error tests
2022-01-09 10:43:07 +01:00
Mattias Wadman
be0ef80c8d
interp,fq: Make bit operators normal functions
...
Uses same rule as jq math functions, 1 arg uses input, more than one all passed as args.
So "bnot 1" -> "1 | bnot", "1 bsl 1" -> "bsl(1; 1)"
Don't think it's worth changing the jq syntax for this and also it could make fq
scripts no compatiblr with other jq tools. Non-10 base number literals are still allowed
but should probably not be used in scripts, only in repl and with cli.
2022-01-09 01:06:36 +01:00
Mattias Wadman
a3cfcd0ad2
interp: Add stderr again for jq compat
...
Also add tests for print* and stderr
2022-01-07 11:30:09 +01:00
Mattias Wadman
628f0f403d
bson: Add decoder
...
Only supports basic types for now
2022-01-06 00:51:37 +01:00
Mattias Wadman
681dbc26b7
elf,ar: Add ar decoder, improved elf decoder
...
Add x86, 386, arm64, arm v6, arm v7 linux elf test files
2022-01-05 22:05:09 +01:00
Mattias Wadman
f6abcff1fc
Merge pull request #54 from wader/interp-stdio-cleanup
...
interp: Cleanup stdio usage and functions
2022-01-05 21:44:48 +01:00
Mattias Wadman
e365f22084
interp: Cleanup stdio usage and functions
2022-01-05 21:41:11 +01:00
Mattias Wadman
b6515c8b15
interp: Remove buffer smartness for regexp match functions
...
Just confusing and breaks symbolic grep for decode values (as they are buffers).
To get buffer use tobytes functions intstead.
2022-01-05 21:13:39 +01:00
Mattias Wadman
a41f0d4b5f
windows: Correct @builtin include path join
...
Failed because go embed paths always uses /
Switch to always use forward slash paths internally
Related to #21
2022-01-04 22:10:53 +01:00
Mattias Wadman
b9aef39ed4
pcap,pcapng,bsd_loopback_frame: Add decoder, refactor link frame into a group
...
Also fix incorrect struct name s/UDPDatagramIn/UDPPayloadIn/
2022-01-03 21:06:27 +01:00
Mattias Wadman
6db7218093
doc: Some more dev infomration
2021-12-31 17:13:16 +01:00
Mattias Wadman
55b1d5c3e7
interp: Move _registry to decode
...
More related to decode than interp. Maybe should have a format.go?
2021-12-25 16:29:45 +01:00
Mattias Wadman
46b59d0ebf
crc: Unbreak build on 32-bit arch
...
Thanks Alexey Dokuchaev @danfe for report and fix.
Fixes #30
2021-12-25 15:47:54 +01:00
Mattias Wadman
f7c7801bbe
interp: Rework buffer regex support
...
Now all regexp functions should work similar to string version for buffers.
Added scan_toend that works as scan but outputs buffer from match to end of buffer,
useful when trying to decode a format and you dont know or care to limit.
2021-12-17 16:23:44 +01:00
Mattias Wadman
f4f63835dc
interp: Add ._index for values in arrays
2021-12-10 18:19:11 +01:00
Mattias Wadman
e823475d3c
interp: Fix help a bit
2021-12-09 21:11:24 +01:00
Mattias Wadman
f3480026bf
sll2: fuzz: Limit address length to max 8 bytes
2021-12-09 10:38:34 +01:00
Mattias Wadman
6ed2e2e72e
interp: dump: Indicate arrays using jq-syntax
...
Related to #16
2021-12-08 16:24:28 +01:00
Mattias Wadman
c2131bb4a0
flac: Cleanup scalar usage and fix incorrect sample rates
...
Also split DisplayFormat into actual and sym
2021-12-08 00:39:52 +01:00
Mattias Wadman
9b683cd839
deocde: Cleanup some io panic(err)
2021-12-07 17:33:57 +01:00
Mattias Wadman
713ffe4770
scalar: Add Require* and Require/Validate/AssertRange*
2021-12-07 15:50:55 +01:00
Mattias Wadman
fa350c6165
interp: Move display to jq
2021-12-06 21:08:40 +01:00
Mattias Wadman
4558192e7c
interp: Cleanup buffer code and implement ExtType()
2021-12-06 21:08:40 +01:00
Mattias Wadman
75aa47556a
decode: Generate Try?Scalar* methods for readers too
2021-12-04 19:05:16 +01:00
Mattias Wadman
9aec91a675
interp: match: Fix issue with regexp meta characters when matching using a buffer
2021-12-04 17:24:43 +01:00
Mattias Wadman
d48ebc12ee
decode: Simplify Compound.Children
...
Not a array reference anymore but instead pass around Compound reference
2021-12-03 00:06:11 +01:00
Mattias Wadman
36e5562e5b
interp: Rename value.* to decode.* as it makes more sense
2021-12-02 21:43:16 +01:00
Mattias Wadman
1b7b2f9641
interp: Use gojqextra.NonUpdatableTypeError
2021-12-02 21:41:38 +01:00
Mattias Wadman
2fc0a71a47
decode: Refactor scalar usage
...
Move scalar into own package.
Split scalar code into decode related scalar code (that reads etc) and
scalar code that just transform the scalar value.
Use a scalar.Mapper interface instead of just a function.
Make mappers, assert and validat impement the interface.
2021-12-02 17:39:26 +01:00
Mattias Wadman
01a407a462
interp: Rename s/bufferrange/buffer and cleanup
2021-11-30 21:10:26 +01:00
Mattias Wadman
4eccb1ee71
interp: Fix broken aes_ctr, should return buffer instead of []byte
2021-11-30 15:30:34 +01:00
Mattias Wadman
f801cc0af7
decode: Rename s/FieldTryFormat/TryFieldFormat for consistency
2021-11-30 15:29:41 +01:00
Mattias Wadman
d1e1cd98c2
decode: Fix walk root depth issue causing dump to indent incorrectly
2021-11-30 12:51:52 +01:00
Mattias Wadman
8d442b82ee
interp: Cleanup stdin reading and add more option tests
2021-11-30 12:25:56 +01:00
Mattias Wadman
f55b1af6ac
inet: Add tcp and ipv4 reassembly
...
Also add tcp_stream and udp_payload to decode content
2021-11-29 18:42:18 +01:00
Mattias Wadman
9f2dddc6e1
interp,gojqextra: Make buffers values even more lazy and error early on non-scalar calls
2021-11-29 14:51:00 +01:00
Mattias Wadman
afb1050355
interp: Move _decode_value to value.jq
2021-11-29 14:26:59 +01:00
Mattias Wadman
8e5442f023
interp: Limit how often decode progress fn is called
2021-11-29 14:26:59 +01:00
Mattias Wadman
3bf1a57cfa
avc: Cleanup and add color names etc
2021-11-28 17:29:56 +01:00
Mattias Wadman
6034ad7d67
interp: More sure stdOS stops the signal forward gorutine
2021-11-25 13:35:20 +01:00
Mattias Wadman
7b7faaf02b
pcap: Add pcap, pcapng, ether8023, ipv4, udp, udp
2021-11-24 18:13:00 +01:00
Mattias Wadman
9d116df799
decode: Rework use of TryFieldReaderRangeFormat
...
Handle failure better
2021-11-24 15:25:27 +01:00
Mattias Wadman
4f8d03731d
format,decode: Some crc and endian refactor
2021-11-24 12:01:01 +01:00
Mattias Wadman
e6cb708d38
mpeg: Nicer sym and description
2021-11-22 17:02:07 +01:00
Mattias Wadman
69e4eea920
interp: Better error if format/group is not found
2021-11-22 13:28:18 +01:00
Mattias Wadman
abcecb8156
interp: Remove unused []byte type
2021-11-22 01:46:06 +01:00
Mattias Wadman
fdb811ec54
gojqextra,decode: Add generic lazy JQValue
2021-11-22 01:23:59 +01:00
Mattias Wadman
1047d909ac
doc: Document io packages a bit
2021-11-21 21:55:53 +01:00
Mattias Wadman
7c4b0b3844
bitio: Simplify by embedding reader
2021-11-21 21:55:09 +01:00
Mattias Wadman
aab32cf2db
gojqextra,interp: Add lazy string to speed usage of decode value buffer where string is not used
2021-11-21 21:27:44 +01:00
Mattias Wadman
f40320b04c
decode: Remove D.Scalar* and add d.(Try)FieldScala*Fn instead
...
Idea is scalar fn should not read
2021-11-21 13:08:18 +01:00
Mattias Wadman
0480a2f722
decode: Some format decode and sub buffer work
2021-11-20 18:56:59 +01:00
Mattias Wadman
278e909a2f
mp4: Add tapt, prof, enof and clap boxes
2021-11-19 15:29:49 +01:00
Mattias Wadman
9cba69e64d
interp: Use todescription in tests
2021-11-19 11:56:58 +01:00
Mattias Wadman
07b421011f
interp: add topath/0 and make todescription return null if there is none
...
Move out more code from funcs.jq
2021-11-19 11:44:23 +01:00
Mattias Wadman
07c7daaf92
doc: Some rewording
2021-11-19 00:23:04 +01:00
Mattias Wadman
d838d2f613
zip: Add format decoder
2021-11-19 00:22:26 +01:00
Mattias Wadman
ffb5adff1d
registry: Move to pkg/registry, feels better
2021-11-18 01:22:21 +01:00
Mattias Wadman
7af191d974
decode: Move io helper into *D
2021-11-18 01:17:41 +01:00
Mattias Wadman
6fba1a8125
decode: Fix bitbuf root handling a bit
2021-11-18 01:17:15 +01:00
Mattias Wadman
c083a9e475
decode: Fix MapRawToScalar regression
2021-11-17 17:14:19 +01:00
Mattias Wadman
986d5ecc50
decode: Move registry package to decode/registry and add a format group type
2021-11-17 16:59:56 +01:00
Mattias Wadman
5d98a6949a
decode: Refactor Error/Fatal into printf functions
2021-11-17 16:26:13 +01:00
Mattias Wadman
ede2e77975
decode: Nicer scalar template and add doc
2021-11-17 16:13:10 +01:00
Mattias Wadman
826c5094f2
decode: Add Generated header for scalar
2021-11-17 10:19:10 +01:00
Mattias Wadman
b66ed32614
decode,interp: Make fuzzing work again and cleanup fatal/error code
2021-11-16 17:11:26 +01:00
Mattias Wadman
f9f866000e
interp,decode: Add force option to ignore asserts
2021-11-16 13:03:56 +01:00
Mattias Wadman
5cd5633374
interp: Move jq function impls closer to where they belong
2021-11-16 11:43:11 +01:00
Mattias Wadman
996be0fae3
interp: Move more options code into options.jq
2021-11-16 10:49:18 +01:00
Mattias Wadman
3fafee8559
interp: Clearer help for -d
2021-11-16 08:43:29 +01:00
Mattias Wadman
1b32b42f93
decode: Major decode API refactor
...
Generate more code
More generic and comfortable API
Improve and Update format decoder to new API
Add some more format tests
2021-11-15 21:12:07 +01:00
Mattias Wadman
fcbfc29154
make: Move testjq.sh into pkg/interp
2021-11-12 00:23:16 +01:00
Mattias Wadman
178032e0a8
interp: Fix $opts shadowing in decode
2021-11-12 00:22:57 +01:00
Mattias Wadman
cc5f405554
interp,format: Update tests after decode refactor/tosym/toactual
2021-11-05 17:29:23 +01:00
Mattias Wadman
6a15625587
interp,decode: Refactor out Scalar from Value and merge Array/Struct into Compound
...
Also add tosym, toactual
2021-11-05 17:29:22 +01:00
Mattias Wadman
6cacc9b398
interp: Move *CtxWriter to ioextra, some comments cleanup
2021-11-05 17:28:29 +01:00
Mattias Wadman
ff2077bc0f
interp: Simplify Function, aliases done in jq now
2021-11-05 17:28:29 +01:00
Mattias Wadman
93322bc434
interp: Implement format/0 in jq
2021-11-03 10:58:33 +01:00
Mattias Wadman
571bf29ab2
Change project title
2021-11-01 17:47:36 +01:00
Mattias Wadman
58ba84ff93
decode,interp: Add RecoverableErrorer interface instead of enumerate
2021-11-01 17:41:39 +01:00
Mattias Wadman
96cc1283cd
interp: Eval options in jq instead of calling jq from go
...
Simpler and causes less weird performance issues
2021-11-01 17:05:36 +01:00
Mattias Wadman
13fae09172
interp: Don't print context cancel
2021-11-01 13:01:05 +01:00
Mattias Wadman
80b5d66c7a
interp: Document inputs and repl/cli details
2021-11-01 13:01:05 +01:00
Mattias Wadman
0660ff08c6
interp: Clear up confusing --rawfile (add a jq alias)
2021-11-01 13:01:05 +01:00
Mattias Wadman
472c1ef081
interp: Refactor out string_input to own function
2021-11-01 11:40:24 +01:00
Mattias Wadman
0d693aa59e
interp: Add line between usage and args help
2021-10-30 18:35:21 +02:00
Mattias Wadman
67898cb44a
interp: Cleanup, use BufferRange for _open, progress for all decode
2021-10-30 01:17:14 +02:00
Mattias Wadman
88eade9ab9
ogg: Add flac support
...
Refactor flac_streaminfo and flac_metadata from flac_metadatablocks
Some deocde bitbuf api cleanup
2021-10-29 18:30:16 +02:00
Mattias Wadman
97f7317928
interp: Rework repl prompt code and fix some whitespace issues again
2021-10-28 12:08:19 +02:00
Mattias Wadman
cfdd92215d
interp: Fix prompt issue with format
2021-10-27 16:40:39 +02:00
Mattias Wadman
80a69977a1
interp: Fix file leak and always cache for now
2021-10-26 11:50:59 +02:00
Mattias Wadman
826c8bd555
interp: Make include abs path work again
2021-10-26 11:02:30 +02:00
Mattias Wadman
2e964fa44f
interp: Disable progress after decode is done
...
Otherwise reading might cause progress output
2021-10-25 11:11:26 +02:00
Mattias Wadman
bc1b3bf819
todo: Add note about symbols and iprint improvments
2021-10-22 11:01:48 +02:00
Mattias Wadman
b024316289
interp: Remove accidental extra space after path in prompt
2021-10-22 00:17:46 +02:00
Mattias Wadman
95ec5e1077
Cleanup and rename s/BufferView/BufferRange
2021-10-21 00:48:30 +02:00
Mattias Wadman
eedfd16b40
interp: Replace find with overloaded match that support buffer
2021-10-20 21:16:13 +02:00
Mattias Wadman
4af5739712
interp: Rework string/buffer for decode values
2021-10-20 01:31:59 +02:00
Mattias Wadman
58bf069ad5
interp: Return []byte value as a buffer for now
2021-10-19 15:44:48 +02:00
Mattias Wadman
5052bae18e
decode,interp: Refactor to allow decode/fillgap a range
2021-10-19 14:38:11 +02:00