refactor!: rename stage flag to emit

This commit is contained in:
Amaan Qureshi 2025-09-19 21:30:15 -04:00 committed by Amaan Qureshi
parent 60c3bed6a4
commit 311585d304
5 changed files with 21 additions and 23 deletions

View file

@ -572,10 +572,10 @@ pub fn generate_grammar_files(
"},
indoc! {r"
$(SRC_DIR)/grammar.json: grammar.js
$(TS) generate --stage=json $^
$(TS) generate --emit=json $^
$(PARSER): $(SRC_DIR)/grammar.json
$(TS) generate --stage=parser $^
$(TS) generate --emit=parser $^
"}
);
write_file(path, contents)?;
@ -623,14 +623,14 @@ pub fn generate_grammar_files(
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/grammar.js"
COMMAND "${TREE_SITTER_CLI}" generate grammar.js
--stage=json
--emit=json
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating grammar.json")
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json"
COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json
--stage=parser --abi=${TREE_SITTER_ABI_VERSION}
--emit=parser --abi=${TREE_SITTER_ABI_VERSION}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating parser.c")
"#}

View file

@ -87,7 +87,7 @@ struct Init {
}
#[derive(Clone, Debug, Default, ValueEnum, PartialEq, Eq)]
enum GenerationStage {
enum GenerationEmit {
/// Generate `grammar.json` and `node-types.json`
Json,
/// Generate `parser.c` and related files
@ -119,12 +119,12 @@ struct Generate {
)
)]
pub abi_version: Option<String>,
/// Which generation stage to end after
/// What generated files to emit
#[arg(long)]
#[clap(value_enum, default_value_t=GenerationStage::Parser)]
pub stage: GenerationStage,
/// Deprecated: use --stage=lib.
#[arg(long, short = 'b', conflicts_with = "stage")]
#[clap(value_enum, default_value_t=GenerationEmit::Parser)]
pub emit: GenerationEmit,
/// Deprecated: use --emit=lib.
#[arg(long, short = 'b', conflicts_with = "emit")]
pub build: bool,
/// Compile a parser in debug mode
#[arg(long, short = '0')]
@ -858,7 +858,7 @@ impl Generate {
if self.build {
// TODO: remove the `--build` argument in 0.27
// TODO: migrate to `warn!` once https://github.com/tree-sitter/tree-sitter/pull/4604 is merged
eprintln!("Warning: --build is deprecated, use --stage=lib instead");
eprintln!("Warning: --build is deprecated, use --emit=lib instead");
}
if let Err(err) = tree_sitter_generate::generate_parser_in_directory(
@ -868,7 +868,7 @@ impl Generate {
abi_version,
self.report_states_for_rule.as_deref(),
self.js_runtime.as_deref(),
self.stage != GenerationStage::Json,
self.emit != GenerationEmit::Json,
) {
if self.json {
eprintln!("{}", serde_json::to_string_pretty(&err)?);
@ -879,7 +879,7 @@ impl Generate {
Err(anyhow!(err.to_string())).with_context(|| "Error when generating parser")?;
}
}
if self.stage == GenerationStage::Lib || self.build {
if self.emit == GenerationEmit::Lib || self.build {
if let Some(path) = self.libdir {
loader = loader::Loader::with_parser_lib_path(path);
}

View file

@ -22,14 +22,14 @@ find_program(TREE_SITTER_CLI tree-sitter DOC "Tree-sitter CLI")
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/grammar.js"
COMMAND "${TREE_SITTER_CLI}" generate grammar.js
--stage=json
--emit=json
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating grammar.json")
add_custom_command(OUTPUT "${CMAKE_CURRENT_SOURCE_DIR}/src/parser.c"
DEPENDS "${CMAKE_CURRENT_SOURCE_DIR}/src/grammar.json"
COMMAND "${TREE_SITTER_CLI}" generate src/grammar.json
--stage=parser --abi=${TREE_SITTER_ABI_VERSION}
--emit=parser --abi=${TREE_SITTER_ABI_VERSION}
WORKING_DIRECTORY "${CMAKE_CURRENT_SOURCE_DIR}"
COMMENT "Generating parser.c")

View file

@ -73,10 +73,10 @@ $(LANGUAGE_NAME).pc: bindings/c/$(LANGUAGE_NAME).pc.in
-e 's|@CMAKE_INSTALL_PREFIX@|$(PREFIX)|' $< > $@
$(SRC_DIR)/grammar.json: grammar.js
$(TS) generate --stage=json $^
$(TS) generate --emit=json $^
$(PARSER): $(SRC_DIR)/grammar.json
$(TS) generate --stage=parser $^
$(TS) generate --emit=parser $^
install: all
install -d '$(DESTDIR)$(DATADIR)'/tree-sitter/queries/KEBAB_PARSER_NAME '$(DESTDIR)$(INCLUDEDIR)'/tree_sitter '$(DESTDIR)$(PCLIBDIR)' '$(DESTDIR)$(LIBDIR)'

View file

@ -49,7 +49,7 @@ static JSON_COMMENT_REGEX: LazyLock<Regex> = LazyLock::new(|| {
.unwrap()
});
struct JSONStageOutput {
struct JSONOutput {
#[cfg(feature = "load")]
node_types_json: String,
syntax_grammar: SyntaxGrammar,
@ -296,9 +296,7 @@ pub fn generate_parser_for_grammar(
Ok((input_grammar.name, parser.c_code))
}
fn generate_node_types_from_grammar(
input_grammar: &InputGrammar,
) -> GenerateResult<JSONStageOutput> {
fn generate_node_types_from_grammar(input_grammar: &InputGrammar) -> GenerateResult<JSONOutput> {
let (syntax_grammar, lexical_grammar, inlines, simple_aliases) =
prepare_grammar(input_grammar)?;
let variable_info =
@ -311,7 +309,7 @@ fn generate_node_types_from_grammar(
&simple_aliases,
&variable_info,
)?;
Ok(JSONStageOutput {
Ok(JSONOutput {
#[cfg(feature = "load")]
node_types_json: serde_json::to_string_pretty(&node_types_json).unwrap(),
syntax_grammar,
@ -328,7 +326,7 @@ fn generate_parser_for_grammar_with_opts(
semantic_version: Option<(u8, u8, u8)>,
report_symbol_name: Option<&str>,
) -> GenerateResult<GeneratedParser> {
let JSONStageOutput {
let JSONOutput {
syntax_grammar,
lexical_grammar,
inlines,