Skip to content

Commit bce5ff3

Browse files
committed
feat: >>>
1 parent 99eda7b commit bce5ff3

File tree

3 files changed

+15
-19
lines changed

3 files changed

+15
-19
lines changed

compiler/ml/unified_ops.ml

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -179,13 +179,7 @@ let entries =
179179
name = "%lsr";
180180
form = Binary;
181181
specialization =
182-
{
183-
int = Plsrint;
184-
bool = None;
185-
float = None;
186-
bigint = None;
187-
string = None;
188-
};
182+
{int = Plsrint; bool = None; float = None; bigint = None; string = None};
189183
};
190184
{
191185
path = builtin "mod";

compiler/syntax/src/res_scanner.ml

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -887,16 +887,14 @@ let rec scan scanner =
887887
next scanner;
888888
Token.Plus)
889889
| '>' -> (
890-
match peek scanner with
891-
| '>' -> (
892-
match peek2 scanner with
893-
| '>' ->
894-
next3 scanner;
895-
Token.GreaterThanGreaterThanGreaterThan
896-
| _ ->
897-
next2 scanner;
898-
Token.GreaterThanGreaterThan)
899-
| '=' when not (in_diamond_mode scanner) ->
890+
match (peek scanner, peek2 scanner) with
891+
| '>', '>' when not (in_diamond_mode scanner) ->
892+
next3 scanner;
893+
Token.GreaterThanGreaterThanGreaterThan
894+
| '>', _ when not (in_diamond_mode scanner) ->
895+
next2 scanner;
896+
Token.GreaterThanGreaterThan
897+
| '=', _ when not (in_diamond_mode scanner) ->
900898
next2 scanner;
901899
Token.GreaterEqual
902900
| _ ->
@@ -1039,6 +1037,9 @@ let reconsider_less_than scanner =
10391037
if scanner.ch == '/' then
10401038
let () = next scanner in
10411039
Token.LessThanSlash
1040+
else if scanner.ch == '<' then (
1041+
next scanner;
1042+
Token.LessThanLessThan)
10421043
else Token.LessThan
10431044

10441045
(* If an operator has whitespace around both sides, it's a binary operator *)

compiler/syntax/src/res_token.ml

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -110,8 +110,9 @@ let precedence = function
110110
| Equal | EqualEqual | EqualEqualEqual | LessThan | GreaterThan | BangEqual
111111
| BangEqualEqual | LessEqual | GreaterEqual | BarGreater ->
112112
5
113-
| Plus | PlusDot | Minus | MinusDot | PlusPlus | LessThanLessThan | GreaterThanGreaterThan
114-
| GreaterThanGreaterThanGreaterThan -> 6
113+
| Plus | PlusDot | Minus | MinusDot | PlusPlus | LessThanLessThan
114+
| GreaterThanGreaterThan ->
115+
6
115116
| Asterisk | AsteriskDot | Forwardslash | ForwardslashDot | Percent -> 7
116117
| Exponentiation -> 8
117118
| MinusGreater -> 9

0 commit comments

Comments
 (0)