@@ -887,24 +887,23 @@ let rec scan scanner =
887887 next scanner;
888888 Token. Plus )
889889 | '>' -> (
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) ->
890+ match peek scanner with
891+ | '=' when not (in_diamond_mode scanner) ->
898892 next2 scanner;
899893 Token. GreaterEqual
900894 | _ ->
901895 next scanner;
902896 Token. GreaterThan )
903- | '<' when not (in_jsx_mode scanner) -> (
897+ | '<' when not (in_diamond_mode scanner) -> (
904898 match peek scanner with
905- | '< ' ->
899+ | '= ' ->
906900 next2 scanner;
907- Token. LessThanLessThan
901+ Token. LessEqual
902+ | _ ->
903+ next scanner;
904+ Token. LessThan )
905+ | '<' when not (in_jsx_mode scanner) -> (
906+ match peek scanner with
908907 | '=' ->
909908 next2 scanner;
910909 Token. LessEqual
@@ -1037,9 +1036,6 @@ let reconsider_less_than scanner =
10371036 if scanner.ch == '/' then
10381037 let () = next scanner in
10391038 Token. LessThanSlash
1040- else if scanner.ch == '<' then (
1041- next scanner;
1042- Token. LessThanLessThan )
10431039 else Token. LessThan
10441040
10451041(* If an operator has whitespace around both sides, it's a binary operator *)
@@ -1058,3 +1054,26 @@ let is_binary_op src start_cnum end_cnum =
10581054 || is_whitespace (String. unsafe_get src end_cnum)
10591055 in
10601056 left_ok && right_ok)
1057+
1058+ let is_left_shift scanner _start_cnum =
1059+ (* print_endline ("@@@@@ is_left_shift ch: " ^ (Char.escaped scanner.ch)); *)
1060+ (* print_endline ("@@@@@ is_left_shift cnum: " ^ (string_of_int _start_cnum)); *)
1061+ (* print_endline ("@@@@@ is_left_shift peek: " ^ (Char.escaped (peek scanner))); *)
1062+ match scanner.ch with
1063+ | '<' -> true
1064+ | _ -> false
1065+
1066+ let is_right_shift scanner _start_cnum =
1067+ (* print_endline ("@@@@@ is_right_shift ch: " ^ (Char.escaped scanner.ch)); *)
1068+ (* print_endline ("@@@@@ is_right_shift cnum: " ^ (string_of_int _start_cnum)); *)
1069+ (* print_endline ("@@@@@ is_right_shift peek: " ^ (Char.escaped (peek scanner))); *)
1070+ match scanner.ch with
1071+ | '>' -> true
1072+ | _ -> false
1073+
1074+ let is_right_shift_unsigned scanner _start_cnum =
1075+ (* print_endline ("@@@@@ is_right_shift_unsigned ch: " ^ (Char.escaped scanner.ch)); *)
1076+ (* print_endline ("@@@@@ is_right_shift_unsigned peek: " ^ (Char.escaped (peek scanner))); *)
1077+ match (scanner.ch, peek scanner) with
1078+ | '>' , '>' -> true
1079+ | _ -> false
0 commit comments