Skip to content

Commit

Permalink
metaclass operator *must* be followed by a class name literal
Browse files Browse the repository at this point in the history
  • Loading branch information
apozharski committed Aug 15, 2024
1 parent 7b63915 commit f39f91b
Show file tree
Hide file tree
Showing 5 changed files with 21,674 additions and 21,993 deletions.
4 changes: 3 additions & 1 deletion grammar.js
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,9 @@ module.exports = grammar({

not_operator: ($) => prec(PREC.not, seq('~', $._expression)),

metaclass_operator: ($) => prec.left(seq('?', $._expression)),
metaclass_operator: ($) => prec.left(seq('?', $.classname)),

classname: ($) => seq($.identifier,repeat(seq('.',$.identifier))),

handle_operator: ($) =>
seq('@', seq($.identifier, repeat(seq('.', $.identifier)))),
Expand Down
28 changes: 26 additions & 2 deletions src/grammar.json
Original file line number Diff line number Diff line change
Expand Up @@ -956,11 +956,36 @@
},
{
"type": "SYMBOL",
"name": "_expression"
"name": "classname"
}
]
}
},
"classname": {
"type": "SEQ",
"members": [
{
"type": "SYMBOL",
"name": "identifier"
},
{
"type": "REPEAT",
"content": {
"type": "SEQ",
"members": [
{
"type": "STRING",
"value": "."
},
{
"type": "SYMBOL",
"name": "identifier"
}
]
}
}
]
},
"handle_operator": {
"type": "SEQ",
"members": [
Expand Down Expand Up @@ -4033,4 +4058,3 @@
"inline": [],
"supertypes": []
}

89 changes: 16 additions & 73 deletions src/node-types.json
Original file line number Diff line number Diff line change
Expand Up @@ -1057,6 +1057,21 @@
]
}
},
{
"type": "classname",
"named": true,
"fields": {},
"children": {
"multiple": true,
"required": true,
"types": [
{
"type": "identifier",
"named": true
}
]
}
},
{
"type": "command",
"named": true,
Expand Down Expand Up @@ -2087,79 +2102,7 @@
"required": true,
"types": [
{
"type": "binary_operator",
"named": true
},
{
"type": "boolean",
"named": true
},
{
"type": "boolean_operator",
"named": true
},
{
"type": "cell",
"named": true
},
{
"type": "comparison_operator",
"named": true
},
{
"type": "field_expression",
"named": true
},
{
"type": "function_call",
"named": true
},
{
"type": "handle_operator",
"named": true
},
{
"type": "identifier",
"named": true
},
{
"type": "lambda",
"named": true
},
{
"type": "matrix",
"named": true
},
{
"type": "metaclass_operator",
"named": true
},
{
"type": "not_operator",
"named": true
},
{
"type": "number",
"named": true
},
{
"type": "parenthesis",
"named": true
},
{
"type": "postfix_operator",
"named": true
},
{
"type": "range",
"named": true
},
{
"type": "string",
"named": true
},
{
"type": "unary_operator",
"type": "classname",
"named": true
}
]
Expand Down
Loading

0 comments on commit f39f91b

Please sign in to comment.