Field propagation

This commit is contained in:
John Doty 2024-09-05 06:30:55 -07:00
parent 591da0c971
commit 94f5958087

View file

@ -205,7 +205,11 @@ def convert_to_tree_sitter(rule: parser.Rule, grammar: parser.Grammar) -> str:
return f"$['{target_name}']"
elif isinstance(rule, parser.MetadataRule):
return convert_to_tree_sitter(rule.rule, grammar)
result = convert_to_tree_sitter(rule.rule, grammar)
field = rule.metadata.get("field")
if field is not None:
result = f"field('{field}', {result})"
return result
else:
raise ValueError(f"Rule {rule} not supported for tree-sitter")