update
This commit is contained in:
parent
6cc16ff7ef
commit
9ded0ac536
3 changed files with 21 additions and 54 deletions
|
|
@ -1,6 +1,6 @@
|
||||||
BasedOnStyle: Microsoft
|
BasedOnStyle: Microsoft
|
||||||
IndentWidth: 4
|
IndentWidth: 4
|
||||||
ColumnLimit: 1600
|
ColumnLimit: 140
|
||||||
UseTab: Always
|
UseTab: Always
|
||||||
SortIncludes: CaseInsensitive
|
SortIncludes: CaseInsensitive
|
||||||
IndentPPDirectives: AfterHash
|
IndentPPDirectives: AfterHash
|
||||||
|
|
|
||||||
|
|
@ -6,7 +6,7 @@
|
||||||
# By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ #
|
# By: rparodi <rparodi@student.42.fr> +#+ +:+ +#+ #
|
||||||
# +#+#+#+#+#+ +#+ #
|
# +#+#+#+#+#+ +#+ #
|
||||||
# Created: 2023/11/12 11:05:05 by rparodi #+# #+# #
|
# Created: 2023/11/12 11:05:05 by rparodi #+# #+# #
|
||||||
# Updated: 2024/05/30 19:46:52 by maiboyer ### ########.fr #
|
# Updated: 2024/05/30 19:57:48 by maiboyer ### ########.fr #
|
||||||
# #
|
# #
|
||||||
# **************************************************************************** #
|
# **************************************************************************** #
|
||||||
|
|
||||||
|
|
@ -14,7 +14,7 @@ BUILD_DIR ?= ../build/
|
||||||
|
|
||||||
all:
|
all:
|
||||||
@$(MAKE) --no-print-directory -f Parser.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libparser.a
|
@$(MAKE) --no-print-directory -f Parser.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libparser.a
|
||||||
@$(MAKE) --no-print-directory -f Grammar.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libgmr.a
|
@#$(MAKE) --no-print-directory -f Grammar.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libgmr.a
|
||||||
|
|
||||||
libparser.a:
|
libparser.a:
|
||||||
@$(MAKE) --no-print-directory -f Parser.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libparser.a
|
@$(MAKE) --no-print-directory -f Parser.mk "LIB_NAME=$(shell realpath .)/" "BUILD_DIR=$(shell realpath $(BUILD_DIR))" libparser.a
|
||||||
|
|
|
||||||
|
|
@ -249,6 +249,7 @@ typedef enum e_tree_cursor_step
|
||||||
// separately on the heap.
|
// separately on the heap.
|
||||||
struct s_external_scanner_state
|
struct s_external_scanner_state
|
||||||
{
|
{
|
||||||
|
// TODO: extract this anonymous struct
|
||||||
union {
|
union {
|
||||||
char *long_data;
|
char *long_data;
|
||||||
char short_data[24];
|
char short_data[24];
|
||||||
|
|
@ -256,63 +257,24 @@ struct s_external_scanner_state
|
||||||
uint32_t length;
|
uint32_t length;
|
||||||
};
|
};
|
||||||
|
|
||||||
#define SUBTREE_BITS \
|
struct s_subtree_inline_data
|
||||||
bool visible : 1; \
|
{
|
||||||
bool named : 1; \
|
bool is_inline : 1;
|
||||||
bool extra : 1; \
|
bool visible : 1;
|
||||||
bool has_changes : 1; \
|
bool named : 1;
|
||||||
bool is_missing : 1; \
|
bool extra : 1;
|
||||||
|
bool has_changes : 1;
|
||||||
|
bool is_missing : 1;
|
||||||
bool is_keyword : 1;
|
bool is_keyword : 1;
|
||||||
|
uint8_t symbol;
|
||||||
#define SUBTREE_SIZE \
|
uint16_t parse_state;
|
||||||
uint8_t padding_columns; \
|
uint8_t padding_columns;
|
||||||
uint8_t padding_rows : 4; \
|
uint8_t padding_rows : 4;
|
||||||
uint8_t lookahead_bytes : 4; \
|
uint8_t lookahead_bytes : 4;
|
||||||
uint8_t padding_bytes; \
|
uint8_t padding_bytes;
|
||||||
uint8_t size_bytes;
|
uint8_t size_bytes;
|
||||||
|
|
||||||
#if TS_BIG_ENDIAN
|
|
||||||
# if TS_PTR_SIZE == 32
|
|
||||||
|
|
||||||
struct s_subtree_inline_data
|
|
||||||
{
|
|
||||||
uint16_t parse_state;
|
|
||||||
uint8_t symbol;
|
|
||||||
SUBTREE_BITS
|
|
||||||
bool unused : 1;
|
|
||||||
bool is_inline : 1;
|
|
||||||
SUBTREE_SIZE
|
|
||||||
};
|
};
|
||||||
|
|
||||||
# else
|
|
||||||
|
|
||||||
struct s_subtree_inline_data
|
|
||||||
{
|
|
||||||
SUBTREE_SIZE
|
|
||||||
uint16_t parse_state;
|
|
||||||
uint8_t symbol;
|
|
||||||
SUBTREE_BITS
|
|
||||||
bool unused : 1;
|
|
||||||
bool is_inline : 1;
|
|
||||||
};
|
|
||||||
|
|
||||||
# endif
|
|
||||||
#else
|
|
||||||
|
|
||||||
struct s_subtree_inline_data
|
|
||||||
{
|
|
||||||
bool is_inline : 1;
|
|
||||||
SUBTREE_BITS
|
|
||||||
uint8_t symbol;
|
|
||||||
uint16_t parse_state;
|
|
||||||
SUBTREE_SIZE
|
|
||||||
};
|
|
||||||
|
|
||||||
#endif
|
|
||||||
|
|
||||||
#undef SUBTREE_BITS
|
|
||||||
#undef SUBTREE_SIZE
|
|
||||||
|
|
||||||
struct s_subtree_heap_data
|
struct s_subtree_heap_data
|
||||||
{
|
{
|
||||||
volatile uint32_t ref_count;
|
volatile uint32_t ref_count;
|
||||||
|
|
@ -336,6 +298,7 @@ struct s_subtree_heap_data
|
||||||
bool is_missing : 1;
|
bool is_missing : 1;
|
||||||
bool is_keyword : 1;
|
bool is_keyword : 1;
|
||||||
|
|
||||||
|
// TODO: extract these anonymous struct
|
||||||
union {
|
union {
|
||||||
// Non-terminal subtrees (`child_count > 0`)
|
// Non-terminal subtrees (`child_count > 0`)
|
||||||
struct
|
struct
|
||||||
|
|
@ -382,6 +345,7 @@ struct s_subtree_pool
|
||||||
};
|
};
|
||||||
|
|
||||||
union u_parse_action {
|
union u_parse_action {
|
||||||
|
// TODO: extract this anonymous struct
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint8_t type;
|
uint8_t type;
|
||||||
|
|
@ -389,6 +353,7 @@ union u_parse_action {
|
||||||
bool extra;
|
bool extra;
|
||||||
bool repetition;
|
bool repetition;
|
||||||
} shift;
|
} shift;
|
||||||
|
// TODO: extract this anonymous struct
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint8_t type;
|
uint8_t type;
|
||||||
|
|
@ -441,6 +406,7 @@ enum e_parse_action_type
|
||||||
|
|
||||||
union u_parse_action_entry {
|
union u_parse_action_entry {
|
||||||
t_parse_action action;
|
t_parse_action action;
|
||||||
|
// TODO: extract this anonymous struct
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
uint8_t count;
|
uint8_t count;
|
||||||
|
|
@ -512,6 +478,7 @@ struct s_language
|
||||||
bool (*lex_fn)(t_lexer_data *, t_state_id);
|
bool (*lex_fn)(t_lexer_data *, t_state_id);
|
||||||
bool (*keyword_lex_fn)(t_lexer_data *, t_state_id);
|
bool (*keyword_lex_fn)(t_lexer_data *, t_state_id);
|
||||||
t_symbol keyword_capture_token;
|
t_symbol keyword_capture_token;
|
||||||
|
// TODO: extract this anonymous struct
|
||||||
struct
|
struct
|
||||||
{
|
{
|
||||||
const bool *states;
|
const bool *states;
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue