Normed parser/src/node.c into multiple files
This commit is contained in:
parent
009be4a4b4
commit
36d9d411ba
10 changed files with 242 additions and 165 deletions
|
|
@ -6,88 +6,35 @@
|
|||
/* By: maiboyer <maiboyer@student.42.fr> +#+ +:+ +#+ */
|
||||
/* +#+#+#+#+#+ +#+ */
|
||||
/* Created: 2024/08/31 17:04:21 by maiboyer #+# #+# */
|
||||
/* Updated: 2024/08/31 17:07:17 by maiboyer ### ########.fr */
|
||||
/* Updated: 2024/08/31 17:29:45 by maiboyer ### ########.fr */
|
||||
/* */
|
||||
/* ************************************************************************** */
|
||||
|
||||
#include "parser/_inner/node.h"
|
||||
#include "parser/tree.h"
|
||||
#include "parser/language.h"
|
||||
#include "parser/tree.h"
|
||||
|
||||
t_u32 ts_node_start_byte(TSNode self)
|
||||
bool ts_node_is_extra(TSNode self)
|
||||
{
|
||||
return self.start_byte;
|
||||
return (ts_subtree_extra(ts_node__subtree(self)));
|
||||
}
|
||||
|
||||
const TSLanguage *ts_node_language(TSNode self)
|
||||
bool ts_node_is_named(TSNode self)
|
||||
{
|
||||
return self.tree->language;
|
||||
TSSymbol alias;
|
||||
|
||||
alias = ts_node__alias(&self);
|
||||
if (alias)
|
||||
return (ts_language_symbol_metadata(self.tree->language, alias).named);
|
||||
return (ts_subtree_named(ts_node__subtree(self)));
|
||||
}
|
||||
|
||||
TSPoint ts_node_start_point(TSNode self)
|
||||
TSNode ts_node_child(TSNode self, t_u32 child_index)
|
||||
{
|
||||
return (TSPoint){self.start_row, self.start_col};
|
||||
return (ts_node__child(self, child_index, true));
|
||||
}
|
||||
|
||||
t_u32 ts_node__alias(const TSNode *self)
|
||||
TSNode ts_node_named_child(TSNode self, t_u32 child_index)
|
||||
{
|
||||
return self->alias;
|
||||
}
|
||||
|
||||
Subtree ts_node__subtree(TSNode self)
|
||||
{
|
||||
return *(const Subtree *)self.id;
|
||||
}
|
||||
|
||||
t_u32 ts_node_end_byte(TSNode self)
|
||||
{
|
||||
return ts_node_start_byte(self) + ts_subtree_size(ts_node__subtree(self)).bytes;
|
||||
}
|
||||
|
||||
TSSymbol ts_node_symbol(TSNode self)
|
||||
{
|
||||
TSSymbol symbol = ts_node__alias(&self);
|
||||
if (!symbol)
|
||||
symbol = ts_subtree_symbol(ts_node__subtree(self));
|
||||
return ts_language_public_symbol(self.tree->language, symbol);
|
||||
}
|
||||
|
||||
t_const_str ts_node_type(TSNode self)
|
||||
{
|
||||
TSSymbol symbol = ts_node__alias(&self);
|
||||
if (!symbol)
|
||||
symbol = ts_subtree_symbol(ts_node__subtree(self));
|
||||
return ts_language_symbol_name(self.tree->language, symbol);
|
||||
}
|
||||
|
||||
TSSymbol ts_node_grammar_symbol(TSNode self)
|
||||
{
|
||||
return ts_subtree_symbol(ts_node__subtree(self));
|
||||
}
|
||||
|
||||
t_const_str ts_node_grammar_type(TSNode self)
|
||||
{
|
||||
TSSymbol symbol = ts_subtree_symbol(ts_node__subtree(self));
|
||||
return ts_language_symbol_name(self.tree->language, symbol);
|
||||
}
|
||||
|
||||
bool ts_node_is_extra(TSNode self)
|
||||
{
|
||||
return ts_subtree_extra(ts_node__subtree(self));
|
||||
}
|
||||
|
||||
bool ts_node_is_named(TSNode self)
|
||||
{
|
||||
TSSymbol alias = ts_node__alias(&self);
|
||||
return alias ? ts_language_symbol_metadata(self.tree->language, alias).named : ts_subtree_named(ts_node__subtree(self));
|
||||
}
|
||||
|
||||
TSNode ts_node_child(TSNode self, t_u32 child_index)
|
||||
{
|
||||
return ts_node__child(self, child_index, true);
|
||||
}
|
||||
|
||||
TSNode ts_node_named_child(TSNode self, t_u32 child_index)
|
||||
{
|
||||
return ts_node__child(self, child_index, false);
|
||||
return (ts_node__child(self, child_index, false));
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue