Skip to content

Commit 2bdf186

Browse files
committed
Sync latest syntax.
Commit 0897bfec3b2279fd0769f95291d6b1e748051fc7
1 parent 8694560 commit 2bdf186

File tree

3 files changed

+71
-75
lines changed

3 files changed

+71
-75
lines changed

lib/4.06.1/unstable/js_playground_compiler.ml

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -272788,8 +272788,8 @@ type t =
272788272788
| PercentPercent
272789272789
| Comment of Comment.t
272790272790
| List
272791-
| TemplateTail of string
272792-
| TemplatePart of string
272791+
| TemplateTail of string * Lexing.position
272792+
| TemplatePart of string * Lexing.position
272793272793
| Backtick
272794272794
| BarGreater
272795272795
| Try
@@ -272898,8 +272898,8 @@ let toString = function
272898272898
| PercentPercent -> "%%"
272899272899
| Comment c -> "Comment" ^ Comment.toString c
272900272900
| List -> "list{"
272901-
| TemplatePart text -> text ^ "${"
272902-
| TemplateTail text -> "TemplateTail(" ^ text ^ ")"
272901+
| TemplatePart (text, _) -> text ^ "${"
272902+
| TemplateTail (text, _) -> "TemplateTail(" ^ text ^ ")"
272903272903
| Backtick -> "`"
272904272904
| BarGreater -> "|>"
272905272905
| Try -> "try"
@@ -274321,12 +274321,15 @@ let scanTemplateLiteralToken scanner =
274321274321
let startPos = position scanner in
274322274322

274323274323
let rec scan () =
274324+
let lastPos = position scanner in
274324274325
match scanner.ch with
274325274326
| '`' ->
274326274327
next scanner;
274327-
Token.TemplateTail
274328-
((String.sub [@doesNotRaise]) scanner.src startOff
274329-
(scanner.offset - 1 - startOff))
274328+
let contents =
274329+
(String.sub [@doesNotRaise]) scanner.src startOff
274330+
(scanner.offset - 1 - startOff)
274331+
in
274332+
Token.TemplateTail (contents, lastPos)
274330274333
| '$' -> (
274331274334
match peek scanner with
274332274335
| '{' ->
@@ -274335,7 +274338,7 @@ let scanTemplateLiteralToken scanner =
274335274338
(String.sub [@doesNotRaise]) scanner.src startOff
274336274339
(scanner.offset - 2 - startOff)
274337274340
in
274338-
Token.TemplatePart contents
274341+
Token.TemplatePart (contents, lastPos)
274339274342
| _ ->
274340274343
next scanner;
274341274344
scan ())
@@ -274351,9 +274354,11 @@ let scanTemplateLiteralToken scanner =
274351274354
| ch when ch = hackyEOFChar ->
274352274355
let endPos = position scanner in
274353274356
scanner.err ~startPos ~endPos Diagnostics.unclosedTemplate;
274354-
Token.TemplateTail
274355-
((String.sub [@doesNotRaise]) scanner.src startOff
274356-
(max (scanner.offset - 1 - startOff) 0))
274357+
let contents =
274358+
(String.sub [@doesNotRaise]) scanner.src startOff
274359+
(max (scanner.offset - 1 - startOff) 0)
274360+
in
274361+
Token.TemplateTail (contents, lastPos)
274357274362
| _ ->
274358274363
next scanner;
274359274364
scan ()
@@ -281685,7 +281690,7 @@ let parseTemplateConstant ~prefix (p : Parser.t) =
281685281690
let startPos = p.startPos in
281686281691
Parser.nextTemplateLiteralToken p;
281687281692
match p.token with
281688-
| TemplateTail txt ->
281693+
| TemplateTail (txt, _) ->
281689281694
Parser.next p;
281690281695
Parsetree.Pconst_string (txt, prefix)
281691281696
| _ ->
@@ -283017,36 +283022,34 @@ and parseTemplateExpr ?(prefix = "js") p =
283017283022
let op = Location.mknoloc (Longident.Lident "^") in
283018283023
Ast_helper.Exp.ident op
283019283024
in
283020-
let rec parseParts acc =
283025+
let concat (e1 : Parsetree.expression) (e2 : Parsetree.expression) =
283026+
let loc = mkLoc e1.pexp_loc.loc_start e2.pexp_loc.loc_end in
283027+
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc hiddenOperator
283028+
[(Nolabel, e1); (Nolabel, e2)]
283029+
in
283030+
let rec parseParts (acc : Parsetree.expression) =
283021283031
let startPos = p.Parser.startPos in
283022283032
Parser.nextTemplateLiteralToken p;
283023283033
match p.token with
283024-
| TemplateTail txt ->
283034+
| TemplateTail (txt, lastPos) ->
283025283035
Parser.next p;
283026-
let loc = mkLoc startPos p.prevEndPos in
283036+
let loc = mkLoc startPos lastPos in
283027283037
let str =
283028283038
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr] ~loc
283029283039
(Pconst_string (txt, Some prefix))
283030283040
in
283031-
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc hiddenOperator
283032-
[(Nolabel, acc); (Nolabel, str)]
283033-
| TemplatePart txt ->
283041+
concat acc str
283042+
| TemplatePart (txt, lastPos) ->
283034283043
Parser.next p;
283035-
let loc = mkLoc startPos p.prevEndPos in
283044+
let loc = mkLoc startPos lastPos in
283036283045
let expr = parseExprBlock p in
283037-
let fullLoc = mkLoc startPos p.prevEndPos in
283038283046
let str =
283039283047
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr] ~loc
283040283048
(Pconst_string (txt, Some prefix))
283041283049
in
283042283050
let next =
283043-
let a =
283044-
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc:fullLoc
283045-
hiddenOperator
283046-
[(Nolabel, acc); (Nolabel, str)]
283047-
in
283048-
Ast_helper.Exp.apply ~loc:fullLoc hiddenOperator
283049-
[(Nolabel, a); (Nolabel, expr)]
283051+
let a = concat acc str in
283052+
concat a expr
283050283053
in
283051283054
parseParts next
283052283055
| token ->
@@ -283056,25 +283059,20 @@ and parseTemplateExpr ?(prefix = "js") p =
283056283059
let startPos = p.startPos in
283057283060
Parser.nextTemplateLiteralToken p;
283058283061
match p.token with
283059-
| TemplateTail txt ->
283062+
| TemplateTail (txt, lastPos) ->
283060283063
Parser.next p;
283061283064
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr]
283062-
~loc:(mkLoc startPos p.prevEndPos)
283065+
~loc:(mkLoc startPos lastPos)
283063283066
(Pconst_string (txt, Some prefix))
283064-
| TemplatePart txt ->
283067+
| TemplatePart (txt, lastPos) ->
283065283068
Parser.next p;
283066-
let constantLoc = mkLoc startPos p.prevEndPos in
283069+
let constantLoc = mkLoc startPos lastPos in
283067283070
let expr = parseExprBlock p in
283068-
let fullLoc = mkLoc startPos p.prevEndPos in
283069283071
let str =
283070283072
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr] ~loc:constantLoc
283071283073
(Pconst_string (txt, Some prefix))
283072283074
in
283073-
let next =
283074-
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc:fullLoc
283075-
hiddenOperator
283076-
[(Nolabel, str); (Nolabel, expr)]
283077-
in
283075+
let next = concat str expr in
283078283076
parseParts next
283079283077
| token ->
283080283078
Parser.err p (Diagnostics.unexpected token p.breadcrumbs);

lib/4.06.1/whole_compiler.ml

Lines changed: 35 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -278530,8 +278530,8 @@ type t =
278530278530
| PercentPercent
278531278531
| Comment of Comment.t
278532278532
| List
278533-
| TemplateTail of string
278534-
| TemplatePart of string
278533+
| TemplateTail of string * Lexing.position
278534+
| TemplatePart of string * Lexing.position
278535278535
| Backtick
278536278536
| BarGreater
278537278537
| Try
@@ -278640,8 +278640,8 @@ let toString = function
278640278640
| PercentPercent -> "%%"
278641278641
| Comment c -> "Comment" ^ Comment.toString c
278642278642
| List -> "list{"
278643-
| TemplatePart text -> text ^ "${"
278644-
| TemplateTail text -> "TemplateTail(" ^ text ^ ")"
278643+
| TemplatePart (text, _) -> text ^ "${"
278644+
| TemplateTail (text, _) -> "TemplateTail(" ^ text ^ ")"
278645278645
| Backtick -> "`"
278646278646
| BarGreater -> "|>"
278647278647
| Try -> "try"
@@ -280063,12 +280063,15 @@ let scanTemplateLiteralToken scanner =
280063280063
let startPos = position scanner in
280064280064

280065280065
let rec scan () =
280066+
let lastPos = position scanner in
280066280067
match scanner.ch with
280067280068
| '`' ->
280068280069
next scanner;
280069-
Token.TemplateTail
280070-
((String.sub [@doesNotRaise]) scanner.src startOff
280071-
(scanner.offset - 1 - startOff))
280070+
let contents =
280071+
(String.sub [@doesNotRaise]) scanner.src startOff
280072+
(scanner.offset - 1 - startOff)
280073+
in
280074+
Token.TemplateTail (contents, lastPos)
280072280075
| '$' -> (
280073280076
match peek scanner with
280074280077
| '{' ->
@@ -280077,7 +280080,7 @@ let scanTemplateLiteralToken scanner =
280077280080
(String.sub [@doesNotRaise]) scanner.src startOff
280078280081
(scanner.offset - 2 - startOff)
280079280082
in
280080-
Token.TemplatePart contents
280083+
Token.TemplatePart (contents, lastPos)
280081280084
| _ ->
280082280085
next scanner;
280083280086
scan ())
@@ -280093,9 +280096,11 @@ let scanTemplateLiteralToken scanner =
280093280096
| ch when ch = hackyEOFChar ->
280094280097
let endPos = position scanner in
280095280098
scanner.err ~startPos ~endPos Diagnostics.unclosedTemplate;
280096-
Token.TemplateTail
280097-
((String.sub [@doesNotRaise]) scanner.src startOff
280098-
(max (scanner.offset - 1 - startOff) 0))
280099+
let contents =
280100+
(String.sub [@doesNotRaise]) scanner.src startOff
280101+
(max (scanner.offset - 1 - startOff) 0)
280102+
in
280103+
Token.TemplateTail (contents, lastPos)
280099280104
| _ ->
280100280105
next scanner;
280101280106
scan ()
@@ -287427,7 +287432,7 @@ let parseTemplateConstant ~prefix (p : Parser.t) =
287427287432
let startPos = p.startPos in
287428287433
Parser.nextTemplateLiteralToken p;
287429287434
match p.token with
287430-
| TemplateTail txt ->
287435+
| TemplateTail (txt, _) ->
287431287436
Parser.next p;
287432287437
Parsetree.Pconst_string (txt, prefix)
287433287438
| _ ->
@@ -288759,36 +288764,34 @@ and parseTemplateExpr ?(prefix = "js") p =
288759288764
let op = Location.mknoloc (Longident.Lident "^") in
288760288765
Ast_helper.Exp.ident op
288761288766
in
288762-
let rec parseParts acc =
288767+
let concat (e1 : Parsetree.expression) (e2 : Parsetree.expression) =
288768+
let loc = mkLoc e1.pexp_loc.loc_start e2.pexp_loc.loc_end in
288769+
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc hiddenOperator
288770+
[(Nolabel, e1); (Nolabel, e2)]
288771+
in
288772+
let rec parseParts (acc : Parsetree.expression) =
288763288773
let startPos = p.Parser.startPos in
288764288774
Parser.nextTemplateLiteralToken p;
288765288775
match p.token with
288766-
| TemplateTail txt ->
288776+
| TemplateTail (txt, lastPos) ->
288767288777
Parser.next p;
288768-
let loc = mkLoc startPos p.prevEndPos in
288778+
let loc = mkLoc startPos lastPos in
288769288779
let str =
288770288780
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr] ~loc
288771288781
(Pconst_string (txt, Some prefix))
288772288782
in
288773-
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc hiddenOperator
288774-
[(Nolabel, acc); (Nolabel, str)]
288775-
| TemplatePart txt ->
288783+
concat acc str
288784+
| TemplatePart (txt, lastPos) ->
288776288785
Parser.next p;
288777-
let loc = mkLoc startPos p.prevEndPos in
288786+
let loc = mkLoc startPos lastPos in
288778288787
let expr = parseExprBlock p in
288779-
let fullLoc = mkLoc startPos p.prevEndPos in
288780288788
let str =
288781288789
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr] ~loc
288782288790
(Pconst_string (txt, Some prefix))
288783288791
in
288784288792
let next =
288785-
let a =
288786-
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc:fullLoc
288787-
hiddenOperator
288788-
[(Nolabel, acc); (Nolabel, str)]
288789-
in
288790-
Ast_helper.Exp.apply ~loc:fullLoc hiddenOperator
288791-
[(Nolabel, a); (Nolabel, expr)]
288793+
let a = concat acc str in
288794+
concat a expr
288792288795
in
288793288796
parseParts next
288794288797
| token ->
@@ -288798,25 +288801,20 @@ and parseTemplateExpr ?(prefix = "js") p =
288798288801
let startPos = p.startPos in
288799288802
Parser.nextTemplateLiteralToken p;
288800288803
match p.token with
288801-
| TemplateTail txt ->
288804+
| TemplateTail (txt, lastPos) ->
288802288805
Parser.next p;
288803288806
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr]
288804-
~loc:(mkLoc startPos p.prevEndPos)
288807+
~loc:(mkLoc startPos lastPos)
288805288808
(Pconst_string (txt, Some prefix))
288806-
| TemplatePart txt ->
288809+
| TemplatePart (txt, lastPos) ->
288807288810
Parser.next p;
288808-
let constantLoc = mkLoc startPos p.prevEndPos in
288811+
let constantLoc = mkLoc startPos lastPos in
288809288812
let expr = parseExprBlock p in
288810-
let fullLoc = mkLoc startPos p.prevEndPos in
288811288813
let str =
288812288814
Ast_helper.Exp.constant ~attrs:[templateLiteralAttr] ~loc:constantLoc
288813288815
(Pconst_string (txt, Some prefix))
288814288816
in
288815-
let next =
288816-
Ast_helper.Exp.apply ~attrs:[templateLiteralAttr] ~loc:fullLoc
288817-
hiddenOperator
288818-
[(Nolabel, str); (Nolabel, expr)]
288819-
in
288817+
let next = concat str expr in
288820288818
parseParts next
288821288819
| token ->
288822288820
Parser.err p (Diagnostics.unexpected token p.breadcrumbs);

0 commit comments

Comments
 (0)