**Problem**
Currently operator_identifier includes characters
like colon at and equal even though they cannot be a legal
operator without backticks.
Having equal etc pushes tree-sitter into thinking some
construct to be an infix operation when they are `=`.
Another compilication is Unicode Math symbols,
which includes equal sign.
**Solution**
Remove colon, at, equal sign, and Math symbols from the
single-char operator_identifier.
This adds back back a few Math symbol unicodes.
Previously the character literal was updated
mimicking that of Rust apparently,
but Scala doesn't have curly braces in the character literal.
We do, however, support two 'u' characters.
Fixes#348
`trait_definition` now includes `_class_definition` which is comprised
of extends-clause, derives-clause, and body. This also slightly reduces
parser size (from ~890Kb to ~780Kb)
Problem
-------
Currently given uses `_function_constructor`, which expects an
identifier.
This doesn't work for anonymous given definition that has function-ish
things like `using` parameters.
Solution
--------
Create a new `_given_constructor` node with an optional name.
Resolves#322
Summary
----
- `given_pattern` now handles cases like:
```scala
for
given Int <- Some(1)
yield summon[Int]
```
- `corpus/patterns.txt` reformatted with `tree-sitter test -u`
Problem
-------
The following comment combinations are not parsed:
1. ```
// /*
// *
// */
```
2. ```
/* // */
```
Solution
-------
- set higher lexing priority for `$._comment_text` token
- include "//" as an alternative to the contents of `$.block_comment`
Problem
-------
Structural types in declarations are not parsed:
```
val x: F { val y: Int }
```
Solution
-------
Remove -1 precedence for `$._structural_type` branch of `$.compount_type`, resolve conflict with `$._type` explicitly
Extra changes
-------
Removed some unused conflict resolutions
Problem
-------
Parameter lists spreading multiple lines are not handled:
```
class A
():
def b
(): Int = 1
```
Solution
-------
Match `$._automatic_semicolon` in `$._function_constructor` and
`$.class_parameters`
Side-change: reuse `$._function_declaration` in `$.function_definition`
Problem
-------
Definitions like the following are not supported:
```scala
val a,b,c: Int = 1
var d,e = ""
```
Solution
-------
Add `$.identifiers` as a choice option along with `$._pattern` to
`$.var_definition`.
Remove `prec(-1)` in `$.identifiers` definitions so that parser wouldn't
on declarations with more than two identifiers.
Resolve a conflict between `$.identifiers` and `$.val_declaration`
Summary
-------
`$.lambda_expression` body was changed from `$._block` to
`$._indentable_expression`. This had the following effects:
* x10 faster parser generation
* parser size reduced from 41M to 24M
* conflict with `$.self_type`, which was resolved by matching
indent-tokens in `$.template_body`. This change, in its turn required
scanner.c to stop emitting INDENT and OUTDENT tokens when encountering
comments