Rename grammar "definition" to "relation"

This commit is contained in:
2026-04-30 19:24:11 -06:00
parent ef8a34f886
commit d5d6ce924c
6 changed files with 93 additions and 93 deletions

View File

@@ -50,7 +50,7 @@ pub fn items<'db>(db: &'db dyn Database, file: workspace::File) -> Vec<ItemMeta<
// otherwise, convert the symbol directly into the item kind
"type_alias" => ItemKind::TypeAlias,
"import" => ItemKind::Import,
"definition" => ItemKind::Relation, // TODO: rename grammar node
"relation" => ItemKind::Relation,
"rule" => ItemKind::Rule,
"assumption" => ItemKind::Assumption,
@@ -115,7 +115,7 @@ pub enum Item<'db> {
/// Parses [Relation] from an [AstNode].
#[salsa::tracked]
pub fn relation<'db>(db: &'db dyn Database, ast: AstNode) -> Relation<'db> {
let name = ast.expect_field(db, "relation").with_contents(db);
let name = ast.expect_field(db, "name").with_contents(db);
let is_decision = ast.get_field(db, "decision").is_some();
let ty = ty(db, ast.expect_field(db, "type"));
Relation::new(db, name, is_decision, ty)

View File

@@ -42,7 +42,7 @@ export default grammar({
// this helps determine which comments are doc comments
$.newline, $.comment,
// the actual items
$.type_alias, $.import, $.definition, $.rule, $.assumption
$.type_alias, $.import, $.relation, $.rule, $.assumption
)),
comment: $ => seq(";", $.commentInner),
@@ -80,12 +80,12 @@ export default grammar({
),
),
definition: $ => seq(
relation: $ => seq(
"define",
field("input", optional("input")),
field("output", optional("output")),
field("decision", optional("decision")),
field("relation", $.symbol),
field("name", $.symbol),
field("type", $.type),
),

View File

@@ -9,7 +9,7 @@
(type_alias name: _ @type)
(rule relation: (symbol) @constructor)
(definition relation: (symbol) @function)
(relation name: (symbol) @function)
(apply head: _ @function)
[ ":-" "," "." ":" ] @punctuation.delimiter
@@ -30,6 +30,6 @@
] @keyword
; doc comments
((comment)+ @comment.docs . (definition))
((comment)+ @comment.docs . (relation))
((comment)+ @comment.docs . (rule))
((comment)+ @comment.docs . (assumption))

View File

@@ -25,7 +25,7 @@
},
{
"type": "SYMBOL",
"name": "definition"
"name": "relation"
},
{
"type": "SYMBOL",
@@ -298,7 +298,7 @@
}
]
},
"definition": {
"relation": {
"type": "SEQ",
"members": [
{
@@ -355,7 +355,7 @@
},
{
"type": "FIELD",
"name": "relation",
"name": "name",
"content": {
"type": "SYMBOL",
"name": "symbol"

View File

@@ -197,62 +197,6 @@
]
}
},
{
"type": "definition",
"named": true,
"fields": {
"decision": {
"multiple": false,
"required": false,
"types": [
{
"type": "decision",
"named": false
}
]
},
"input": {
"multiple": false,
"required": false,
"types": [
{
"type": "input",
"named": false
}
]
},
"output": {
"multiple": false,
"required": false,
"types": [
{
"type": "output",
"named": false
}
]
},
"relation": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "expr",
"named": true,
@@ -396,10 +340,6 @@
"type": "comment",
"named": true
},
{
"type": "definition",
"named": true
},
{
"type": "import",
"named": true
@@ -408,6 +348,10 @@
"type": "newline",
"named": true
},
{
"type": "relation",
"named": true
},
{
"type": "rule",
"named": true
@@ -450,6 +394,62 @@
"named": true,
"fields": {}
},
{
"type": "relation",
"named": true,
"fields": {
"decision": {
"multiple": false,
"required": false,
"types": [
{
"type": "decision",
"named": false
}
]
},
"input": {
"multiple": false,
"required": false,
"types": [
{
"type": "input",
"named": false
}
]
},
"name": {
"multiple": false,
"required": true,
"types": [
{
"type": "symbol",
"named": true
}
]
},
"output": {
"multiple": false,
"required": false,
"types": [
{
"type": "output",
"named": false
}
]
},
"type": {
"multiple": false,
"required": true,
"types": [
{
"type": "type",
"named": true
}
]
}
}
},
{
"type": "rule",
"named": true,

View File

@@ -67,7 +67,7 @@ enum ts_symbol_identifiers {
sym_type_alias = 45,
sym_type = 46,
sym_import = 47,
sym_definition = 48,
sym_relation = 48,
sym_rule = 49,
sym_assumption = 50,
sym_rule_body = 51,
@@ -136,7 +136,7 @@ static const char * const ts_symbol_names[] = {
[sym_type_alias] = "type_alias",
[sym_type] = "type",
[sym_import] = "import",
[sym_definition] = "definition",
[sym_relation] = "relation",
[sym_rule] = "rule",
[sym_assumption] = "assumption",
[sym_rule_body] = "rule_body",
@@ -205,7 +205,7 @@ static const TSSymbol ts_symbol_map[] = {
[sym_type_alias] = sym_type_alias,
[sym_type] = sym_type,
[sym_import] = sym_import,
[sym_definition] = sym_definition,
[sym_relation] = sym_relation,
[sym_rule] = sym_rule,
[sym_assumption] = sym_assumption,
[sym_rule_body] = sym_rule_body,
@@ -418,7 +418,7 @@ static const TSSymbolMetadata ts_symbol_metadata[] = {
.visible = true,
.named = true,
},
[sym_definition] = {
[sym_relation] = {
.visible = true,
.named = true,
},
@@ -665,7 +665,7 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
[20] =
{field_named, 0},
[21] =
{field_relation, 1},
{field_name, 1},
{field_type, 2},
[23] =
{field_body, 1},
@@ -691,15 +691,15 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
{field_path, 1, .inherited = true},
[37] =
{field_input, 1},
{field_relation, 2},
{field_name, 2},
{field_type, 3},
[40] =
{field_name, 2},
{field_output, 1},
{field_relation, 2},
{field_type, 3},
[43] =
{field_decision, 1},
{field_relation, 2},
{field_name, 2},
{field_type, 3},
[46] =
{field_head, 2},
@@ -740,18 +740,18 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
{field_path, 2, .inherited = true},
[71] =
{field_input, 1},
{field_name, 3},
{field_output, 2},
{field_relation, 3},
{field_type, 4},
[75] =
{field_decision, 2},
{field_input, 1},
{field_relation, 3},
{field_name, 3},
{field_type, 4},
[79] =
{field_decision, 2},
{field_name, 3},
{field_output, 1},
{field_relation, 3},
{field_type, 4},
[83] =
{field_apply, 4},
@@ -772,8 +772,8 @@ static const TSFieldMapEntry ts_field_map_entries[] = {
[94] =
{field_decision, 3},
{field_input, 1},
{field_name, 4},
{field_output, 2},
{field_relation, 4},
{field_type, 5},
[99] =
{field_body, 4},
@@ -1691,7 +1691,7 @@ static const uint16_t ts_parse_table[LARGE_STATE_COUNT][SYMBOL_COUNT] = {
[sym_comment] = STATE(1),
[sym_type_alias] = STATE(55),
[sym_import] = STATE(55),
[sym_definition] = STATE(55),
[sym_relation] = STATE(55),
[sym_rule] = STATE(55),
[sym_assumption] = STATE(55),
[aux_sym_file_repeat1] = STATE(55),
@@ -3513,7 +3513,7 @@ static const uint16_t ts_small_parse_table[] = {
sym_comment,
sym_type_alias,
sym_import,
sym_definition,
sym_relation,
sym_rule,
sym_assumption,
aux_sym_file_repeat1,
@@ -3575,7 +3575,7 @@ static const uint16_t ts_small_parse_table[] = {
STATE(53), 6,
sym_type_alias,
sym_import,
sym_definition,
sym_relation,
sym_rule,
sym_assumption,
aux_sym_file_repeat1,
@@ -5199,24 +5199,24 @@ static const TSParseActionEntry ts_parse_actions[] = {
[220] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 4, 0, 25),
[222] = {.entry = {.count = 1, .reusable = true}}, REDUCE(aux_sym_import_repeat1, 2, 0, 24),
[224] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 5, 0, 41),
[226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 6, 0, 50),
[226] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 6, 0, 50),
[228] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rule, 5, 0, 40),
[230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 4, 0, 27),
[230] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 4, 0, 27),
[232] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assumption, 3, 0, 19),
[234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 4, 0, 28),
[234] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 4, 0, 28),
[236] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rule, 3, 0, 15),
[238] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type_alias, 4, 0, 23),
[240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 4, 0, 29),
[240] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 4, 0, 29),
[242] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rule, 4, 0, 30),
[244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 5, 0, 42),
[246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 5, 0, 43),
[248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 5, 0, 44),
[244] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 5, 0, 42),
[246] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 5, 0, 43),
[248] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 5, 0, 44),
[250] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 1, 0, 17),
[252] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 6, 0, 46),
[254] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4, 0, 47),
[256] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_type, 4, 0, 48),
[258] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_rule, 6, 0, 51),
[260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_definition, 3, 0, 18),
[260] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_relation, 3, 0, 18),
[262] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 7, 0, 54),
[264] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_import, 7, 0, 56),
[266] = {.entry = {.count = 1, .reusable = true}}, REDUCE(sym_assumption, 7, 0, 57),