feat(lib): add the language name
This commit is contained in:
parent
42dd32d184
commit
c5ee0ac070
5 changed files with 17 additions and 0 deletions
|
|
@ -20,6 +20,7 @@ const SMALL_STATE_THRESHOLD: usize = 64;
|
|||
const ABI_VERSION_MIN: usize = 14;
|
||||
const ABI_VERSION_MAX: usize = tree_sitter::LANGUAGE_VERSION;
|
||||
const BUILD_VERSION: &str = env!("CARGO_PKG_VERSION");
|
||||
const ABI_VERSION_WITH_METADATA: usize = 15;
|
||||
|
||||
macro_rules! add {
|
||||
($this: tt, $($arg: tt)*) => {{
|
||||
|
|
@ -1436,6 +1437,11 @@ impl Generator {
|
|||
}
|
||||
|
||||
add_line!(self, ".primary_state_ids = ts_primary_state_ids,");
|
||||
|
||||
if self.abi_version >= ABI_VERSION_WITH_METADATA {
|
||||
add_line!(self, ".name = \"{}\",", self.language_name);
|
||||
}
|
||||
|
||||
dedent!(self);
|
||||
add_line!(self, "}};");
|
||||
add_line!(self, "return &language;");
|
||||
|
|
|
|||
|
|
@ -1142,6 +1142,11 @@ uint32_t ts_language_version(const TSLanguage *self);
|
|||
*/
|
||||
TSStateId ts_language_next_state(const TSLanguage *self, TSStateId state, TSSymbol symbol);
|
||||
|
||||
/**
|
||||
* Get the name of this language. This returns `NULL` in older parsers.
|
||||
*/
|
||||
const char *ts_language_name(const TSLanguage *self);
|
||||
|
||||
/********************************/
|
||||
/* Section - Lookahead Iterator */
|
||||
/********************************/
|
||||
|
|
|
|||
|
|
@ -28,6 +28,10 @@ uint32_t ts_language_version(const TSLanguage *self) {
|
|||
return self->version;
|
||||
}
|
||||
|
||||
const char *ts_language_name(const TSLanguage *self) {
|
||||
return self->version >= LANGUAGE_VERSION_WITH_METADATA ? self->name : NULL;
|
||||
}
|
||||
|
||||
uint32_t ts_language_field_count(const TSLanguage *self) {
|
||||
return self->field_count;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -10,6 +10,7 @@ extern "C" {
|
|||
|
||||
#define ts_builtin_sym_error_repeat (ts_builtin_sym_error - 1)
|
||||
|
||||
#define LANGUAGE_VERSION_WITH_METADATA 15
|
||||
#define LANGUAGE_VERSION_WITH_PRIMARY_STATES 14
|
||||
|
||||
typedef struct {
|
||||
|
|
|
|||
|
|
@ -129,6 +129,7 @@ struct TSLanguage {
|
|||
void (*deserialize)(void *, const char *, unsigned);
|
||||
} external_scanner;
|
||||
const TSStateId *primary_state_ids;
|
||||
const char *name;
|
||||
};
|
||||
|
||||
static inline bool set_contains(TSCharacterRange *ranges, uint32_t len, int32_t lookahead) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue