Skip to content
This repository was archived by the owner on Jun 15, 2023. It is now read-only.

Commit 7b1b39e

Browse files
author
Iwan
committed
Scan <= in jsx mode as Token.LessEqual
Fixes #113
1 parent 01499c5 commit 7b1b39e

File tree

5 files changed

+35
-2
lines changed

5 files changed

+35
-2
lines changed

src/res_scanner.ml

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -624,7 +624,10 @@ let rec scan scanner =
624624
if scanner.ch == CharacterCodes.forwardslash then
625625
let () = next scanner in
626626
Token.LessThanSlash
627-
else
627+
else if scanner.ch == CharacterCodes.equal then (
628+
next scanner;
629+
Token.LessEqual
630+
) else
628631
Token.LessThan
629632
) else if scanner.ch == CharacterCodes.equal then (
630633
next scanner;

tests/parsing/grammar/expressions/__snapshots__/parse.spec.js.snap

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1036,7 +1036,19 @@ let _ =
10361036
[@JSX ]))))
10371037
|> Array.of_list)
10381038
|> ReasonReact.array)
1039-
[@ns.braces ])] ())[@JSX ])"
1039+
[@ns.braces ])] ())[@JSX ])
1040+
;;((div ~children:[((Js.log (a <= 10))[@ns.braces ])] ())[@JSX ])
1041+
;;((div
1042+
~children:[((div ~children:[((Js.log (a <= 10))[@ns.braces ])] ())
1043+
[@JSX ])] ())[@JSX ])
1044+
;;((div
1045+
~children:[((div ~onClick:((fun _ -> Js.log (a <= 10))
1046+
[@ns.namedArgLoc ][@ns.braces ])
1047+
~children:[((div
1048+
~children:[((Js.log (a <= 10))
1049+
[@ns.braces ])] ())
1050+
[@JSX ])] ())
1051+
[@JSX ])] ())[@JSX ])"
10401052
`;
10411053
10421054
exports[`list.js 1`] = `

tests/parsing/grammar/expressions/jsx.js

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -478,3 +478,9 @@ let _ = <View style=styles["backgroundImageWrapper"]>
478478
|> Array.of_list
479479
|> ReasonReact.array}
480480
</div>;
481+
482+
// https://github.com/rescript-lang/syntax/issues/113
483+
// <= should be scanned as <=
484+
<div> {Js.log(a <= 10)} </div>
485+
<div> <div> {Js.log(a <= 10)} </div> </div>
486+
<div> <div onClick={_ => Js.log(a <= 10) }> <div> {Js.log(a <= 10)} </div> </div> </div>

tests/printer/expr/__snapshots__/render.spec.js.snap

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2694,6 +2694,13 @@ let x = <MyComponent sidebar={<div> test </div>} nav={<Navbar />} />
26942694
|> Array.of_list
26952695
|> ReasonReact.array}
26962696
</div>
2697+
2698+
// https://github.com/rescript-lang/syntax/issues/113
2699+
<div> {Js.log(a <= 10)} </div>
2700+
<div> <div> {Js.log(a <= 10)} </div> </div>
2701+
<div>
2702+
<div onClick={_ => Js.log(a <= 10)}> <div> {Js.log(a <= 10)} </div> </div>
2703+
</div>
26972704
"
26982705
`;
26992706

tests/printer/expr/jsx.js

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -261,3 +261,8 @@ let x = <MyComponent sidebar=<div> test </div> nav=<Navbar /> />
261261
|> Array.of_list
262262
|> ReasonReact.array}
263263
</div>
264+
265+
// https://github.com/rescript-lang/syntax/issues/113
266+
<div> {Js.log(a <= 10)} </div>
267+
<div> <div> {Js.log(a <= 10)} </div> </div>
268+
<div> <div onClick={_ => Js.log(a <= 10) }> <div> {Js.log(a <= 10)} </div> </div> </div>

0 commit comments

Comments
 (0)