sus-regex/structs.txt
2024-04-09 20:17:19 +05:00

49 lines
745 B
Plaintext

/*
struct group {
alts_tail: group_alt ptrdiff32
alts_head: group_alt ptrdiff32
up: group ptrdiff32
}
struct group_alt {
text_tail: text_node ptrdiff32
text_head: text_node ptrdiff32
next: group_alt ptrdiff32
}
struct text_node {
type: i32 enum {
// null = 0
murder = 1 // union: void[0]
wiped = 2 // union: void[0]
chars = 3 // union: text_chars
group = 4 // union: group
}
next: text_node ptrdiff32
data: union ...
}
struct text_chars {
text: char[]rev ptrdiff32
len: u32
prevtmp: text_chars ptrdiff32
}
struct parse_state {
current_gr: group ptr64
mother_gr: group ptr64
regchar: char ptr64
callback: fn ptr64
cbdata: void ptr64
...?
}
enum err {
OK = 0
NO_MATCH = 1
BAD_GRCLOSE = 2
BAD_MURDER = 3
}
*/