Simplify 'select_value' rule

Upstream has greatly simplified the parsing of `select` expressions, in
order to add multi-valued `select`.

To this end, we remove the hard-coded list of function names, and accept
an arbitrary number of arguments.
This commit is contained in:
Bruno BELANYI 2024-04-23 14:47:14 +00:00
parent b2e113a821
commit c56e2eca70
5 changed files with 1375 additions and 2935 deletions

118
src/grammar.json generated
View file

@ -469,17 +469,8 @@
"value": "("
},
{
"type": "CHOICE",
"members": [
{
"type": "SYMBOL",
"name": "select_value"
},
{
"type": "SYMBOL",
"name": "soong_config_variable"
}
]
"type": "SYMBOL",
"name": "select_value"
},
{
"type": "STRING",
@ -504,21 +495,8 @@
"content": {
"type": "ALIAS",
"content": {
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": "product_variable"
},
{
"type": "STRING",
"value": "release_variable"
},
{
"type": "STRING",
"value": "variant"
}
]
"type": "SYMBOL",
"name": "identifier"
},
"named": true,
"value": "selection_type"
@ -532,61 +510,47 @@
"type": "FIELD",
"name": "condition",
"content": {
"type": "SYMBOL",
"name": "_string_literal"
}
},
{
"type": "STRING",
"value": ")"
}
]
},
"soong_config_variable": {
"type": "SEQ",
"members": [
{
"type": "FIELD",
"name": "type",
"content": {
"type": "ALIAS",
"content": {
"type": "STRING",
"value": "soong_config_variable"
},
"named": true,
"value": "selection_type"
}
},
{
"type": "STRING",
"value": "("
},
{
"type": "FIELD",
"name": "condition",
"content": {
"type": "SEQ",
"type": "CHOICE",
"members": [
{
"type": "FIELD",
"name": "namespace",
"content": {
"type": "SYMBOL",
"name": "_string_literal"
}
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "_string_literal"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "SYMBOL",
"name": "_string_literal"
}
]
}
},
{
"type": "CHOICE",
"members": [
{
"type": "STRING",
"value": ","
},
{
"type": "BLANK"
}
]
}
]
},
{
"type": "STRING",
"value": ","
},
{
"type": "FIELD",
"name": "variable",
"content": {
"type": "SYMBOL",
"name": "_string_literal"
}
"type": "BLANK"
}
]
}