44 lines
964 B
Plaintext
44 lines
964 B
Plaintext
mystruct.ptr, mystruct.arrsize
|
|
|
|
mystruct.ptr[$1].field.ptr[$2], mystruct.arrsize, mystruct.ptr[$1].field.arrsize
|
|
|
|
mystruct.ptr.field
|
|
|
|
mystruct.ptr[.arrsize].field.ptr[.arrsize]
|
|
|
|
cast<MyType*>(mystruct.ptr).field, dbl
|
|
|
|
%rax
|
|
%rbx
|
|
|
|
(int[mystruct.arraysize]*)(mystruct.ptr)
|
|
|
|
builtin functions? (e.g. casts)
|
|
|
|
|
|
<watch desc> = <data desc>, <format spec>
|
|
|
|
<data desc> = <data desc>.<data desc> | <array desc> | <ident> | <reg>
|
|
|
|
<array desc> = <ident>\[<arrsize spec>|<arrpath>\]
|
|
|
|
<arrsize spec> = [<arrpath>]..<arrpath>
|
|
|
|
<arrpath> = (\^*<ident path>) | <num literal> | #<num literal>
|
|
|
|
<ident path> = <ident> | <ident>.<ident path>
|
|
|
|
<reg> = $<ident>
|
|
|
|
$ for registers
|
|
# for special indices
|
|
% for various builtins
|
|
|
|
|
|
<format spec> = <type>[<num literal>[x<num literal>]]
|
|
|
|
<type> = <base type>
|
|
|
|
<base type> = i8 | i16 | i32 | i64 | i128 | u8 | u16 | u32 | u64 | u128 | f32 | f64 | flt | dbl | str | cstr
|
|
|
|
this is still missing the syntax to search in upper frames for variables |