datahub/wherehows-web/app/parsers/autocomplete.ne

83 lines
2.8 KiB
Plaintext
Raw Normal View History

# @builtin "string.ne"
Expression -> Term {% (d) => d[0] %}
Term
-> Something _ LogicOperator _ Term {% (d) => [d[0], d[2], ...d[4]] %}
| Something _ Term {% (d) => [d[0], ...d[2]] %}
| Parenthesis {% (d) => d[0] %}
| Something
Parenthesis
-> OpenP Term CloseP {% (d) => [d[1]] %}
| OpenP Something _ LogicOperator _ Term CloseP _ LogicOperator _ Term
{% (d) => [[d[1], d[3], ...d[5]], d[8], ...d[10]] %}
| OpenP Something _ LogicOperator _ Term CloseP _ Term
{% (d) => [[d[1], d[3], ...d[5]], ...d[8]] %}
OpenP
-> "("
CloseP
-> ")"
LogicOperator
-> AndOperator {% (d) => d[0] %}
| OrOperator {% (d) => d[0] %}
AndOperator
-> "AND" {% (d) => d[0] %}
OrOperator
-> "OR" {% (d) => d[0] %}
Something
-> SomethingWithoutSpaces {% (d) => d[0] %}
| SomethingWithoutSpaces _ {% (d) => d[0] %}
| _ SomethingWithoutSpaces {% (d) => d[1] %}
| _ SomethingWithoutSpaces _ {% (d) => d[1] %}
SomethingWithoutSpaces
-> Facet {% (d) => d[0] %}
| Datasetname {% (d) => d[0] %}
Facet
-> FacetName FacetSeparator FacetValue
{% (d) => ({
facetName: d[0],
facetValue: d[2]
}) %}
FacetSeparator
-> ":"
FacetName
-> FacetNameName {% (d) => d[0] %}
| FacetNameFabric {% (d) => d[0] %}
| FacetNamePlatform {% (d) => d[0] %}
FacetNameName -> "name" {% (d) => d[0] %}
FacetNameFabric -> "dataorigin" {% (d) => d[0] %}
FacetNamePlatform -> "platform" {% (d) => d[0] %}
FacetValue
-> String {% (d) => d[0] %}
Datasetname
-> String {% (d, l, reject) => {
if (d[0] === 'AND'
|| d[0] === 'OR'
|| d[0] === 'name'
|| d[0] === 'dataorigin'
|| d[0] === 'platform'
|| d[0].indexOf(':') >= 0) {
return reject;
}
return { dataset: d[0] };
} %}
String
-> [a-zA-Z\._\-0-9\*{}]:+ {% (d) => d[0].join("") %}
_
-> [\s]:+ {% (d) => null %}