Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
dotNET Platform
fsharp
提交
024b98d0
F
fsharp
项目概览
dotNET Platform
/
fsharp
10 个月 前同步成功
通知
0
Star
1
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
F
fsharp
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
024b98d0
编写于
5月 23, 2023
作者:
E
Eugene Auduchinok
提交者:
GitHub
5月 23, 2023
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
Parser: rewrite tuple expr recovery to allow better items recovery (#15227)
上级
448ab614
变更
48
隐藏空白更改
内联
并排
Showing
48 changed file
with
692 addition
and
144 deletion
+692
-144
src/Compiler/SyntaxTree/SyntaxTreeOps.fs
src/Compiler/SyntaxTree/SyntaxTreeOps.fs
+0
-9
src/Compiler/SyntaxTree/SyntaxTreeOps.fsi
src/Compiler/SyntaxTree/SyntaxTreeOps.fsi
+0
-2
src/Compiler/pars.fsy
src/Compiler/pars.fsy
+53
-20
tests/service/ParserTests.fs
tests/service/ParserTests.fs
+0
-113
tests/service/data/SyntaxTree/Expression/Binary - Eq 01.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 01.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 01.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 01.fs.bsl
+21
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 02.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 02.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 02.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 02.fs.bsl
+25
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 03.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 03.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 03.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 03.fs.bsl
+28
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 04.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 04.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 04.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 04.fs.bsl
+43
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 05.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 05.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 05.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 05.fs.bsl
+44
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 06.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 06.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 06.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 06.fs.bsl
+55
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 07.fs
tests/service/data/SyntaxTree/Expression/Binary - Eq 07.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary - Eq 07.fs.bsl
.../service/data/SyntaxTree/Expression/Binary - Eq 07.fs.bsl
+43
-0
tests/service/data/SyntaxTree/Expression/Binary 01.fs
tests/service/data/SyntaxTree/Expression/Binary 01.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary 01.fs.bsl
tests/service/data/SyntaxTree/Expression/Binary 01.fs.bsl
+21
-0
tests/service/data/SyntaxTree/Expression/Binary 02.fs
tests/service/data/SyntaxTree/Expression/Binary 02.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Binary 02.fs.bsl
tests/service/data/SyntaxTree/Expression/Binary 02.fs.bsl
+31
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 01.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 01.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 01.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 01.fs.bsl
+19
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 02.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 02.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 02.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 02.fs.bsl
+17
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 03.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 03.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 03.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 03.fs.bsl
+17
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 04.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 04.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 04.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 04.fs.bsl
+19
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 05.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 05.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 05.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 05.fs.bsl
+20
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 06.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 06.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 06.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 06.fs.bsl
+18
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 07.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 07.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 07.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 07.fs.bsl
+24
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 08.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 08.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 08.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 08.fs.bsl
+23
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 09.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 09.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 09.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 09.fs.bsl
+23
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 10.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl
+29
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs
...ice/data/SyntaxTree/Expression/Tuple - Missing item 11.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl
...data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl
+25
-0
tests/service/data/SyntaxTree/Expression/Tuple 01.fs
tests/service/data/SyntaxTree/Expression/Tuple 01.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple 01.fs.bsl
tests/service/data/SyntaxTree/Expression/Tuple 01.fs.bsl
+13
-0
tests/service/data/SyntaxTree/Expression/Tuple 02.fs
tests/service/data/SyntaxTree/Expression/Tuple 02.fs
+3
-0
tests/service/data/SyntaxTree/Expression/Tuple 02.fs.bsl
tests/service/data/SyntaxTree/Expression/Tuple 02.fs.bsl
+15
-0
未找到文件。
src/Compiler/SyntaxTree/SyntaxTreeOps.fs
浏览文件 @
024b98d0
...
...
@@ -939,15 +939,6 @@ let mkDynamicArgExpr expr =
|
SynExpr
.
Paren
(
expr
=
e
)
->
e
|
e
->
e
let
rec
normalizeTupleExpr
exprs
commas
:
SynExpr
list
*
range
list
=
match
exprs
with
|
SynExpr
.
Tuple
(
false
,
innerExprs
,
innerCommas
,
_)
::
rest
->
let
innerExprs
,
innerCommas
=
normalizeTupleExpr
(
List
.
rev
innerExprs
)
(
List
.
rev
innerCommas
)
innerExprs
@
rest
,
innerCommas
@
commas
|
_
->
exprs
,
commas
let
rec
normalizeTuplePat
pats
commas
:
SynPat
list
*
range
List
=
match
pats
with
|
SynPat
.
Tuple
(
false
,
innerPats
,
innerCommas
,
_)
::
rest
->
...
...
src/Compiler/SyntaxTree/SyntaxTreeOps.fsi
浏览文件 @
024b98d0
...
...
@@ -331,8 +331,6 @@ val prependIdentInLongIdentWithTrivia: ident: SynIdent -> mDot: range -> lid: Sy
val
mkDynamicArgExpr
:
expr
:
SynExpr
->
SynExpr
val
normalizeTupleExpr
:
exprs
:
SynExpr
list
->
commas
:
range
list
->
SynExpr
list
*
range
List
val
normalizeTuplePat
:
pats
:
SynPat
list
->
commas
:
range
list
->
SynPat
list
*
range
List
val
desugarGetSetMembers
:
memberDefns
:
SynMemberDefns
->
SynMemberDefns
...
...
src/Compiler/pars.fsy
浏览文件 @
024b98d0
...
...
@@ -169,6 +169,7 @@ let parse_error_rich = Some(fun (ctxt: ParseErrorContext<_>) ->
%type <SynExpr> atomicExprAfterType
%type <SynExpr> typedSequentialExprBlock
%type <SynExpr * bool> atomicExpr
%type <SynExpr list * range list> tupleExpr
%type <SynTypeDefnSimpleRepr> tyconDefnOrSpfnSimpleRepr
%type <Choice<SynEnumCase, SynUnionCase> list> unionTypeRepr
%type <range * SynMemberDefns> tyconDefnAugmentation
...
...
@@ -4017,14 +4018,8 @@ declExpr:
| tupleExpr %prec expr_tuple
{ let exprs, commas = $1
let exprs, commas =
// Nested non-struct tuple is only possible during error recovery,
// in other situations there are intermediate nodes.
match exprs with
| SynExpr.Tuple(false, _, _, _) :: _ -> normalizeTupleExpr exprs commas
| _ -> exprs, commas
SynExpr.Tuple(false, List.rev exprs, List.rev commas, (commas.Head, exprs) ||> unionRangeWithListBy (fun e -> e.Range)) }
let m = unionRanges exprs.Head.Range (List.last exprs).Range
SynExpr.Tuple(false, List.rev exprs, List.rev commas, m) }
| declExpr JOIN_IN declExpr
{ SynExpr.JoinIn($1, rhs parseState 2, $3, unionRanges $1.Range $3.Range) }
...
...
@@ -4120,9 +4115,10 @@ declExpr:
{ reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression($2))
exprFromParseError(mkSynInfix (rhs parseState 2) $1 $2 (arbExpr ("declExprInfix", (rhs parseState 3).StartRange))) }
| declExpr EQUALS
OBLOCKEND_COMING_SOON
| declExpr EQUALS
ends_coming_soon_or_recover
{ reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression("="))
exprFromParseError(mkSynInfix (rhs parseState 2) $1 "=" (arbExpr ("declExprInfix", (rhs parseState 3).StartRange))) }
let mEquals = rhs parseState 2
mkSynInfix mEquals $1 "=" (arbExpr ("declExprInfixEquals", mEquals.EndRange)) }
| declExpr INFIX_COMPARE_OP OBLOCKEND_COMING_SOON
{ reportParseErrorAt (rhs parseState 2) (FSComp.SR.parsUnfinishedExpression($2))
...
...
@@ -4380,23 +4376,47 @@ tupleExpr:
let exprs, commas = $1
arbExpr ("tupleExpr1", commaRange.EndRange) :: exprs, commaRange :: commas }
| tupleExpr COMMA COMMA declExpr
{ let exprs, commas = $1
let mComma1 = rhs parseState 2
let mComma2 = rhs parseState 3
reportParseErrorAt mComma2 (FSComp.SR.parsExpectingExpressionInTuple ())
let expr = arbExpr ("tupleExpr2", mComma1.EndRange)
$4 :: expr :: exprs, (mComma2 :: mComma1 :: commas) }
| tupleExpr COMMA COMMA ends_coming_soon_or_recover
{ let exprs, commas = $1
let mComma1 = rhs parseState 2
let mComma2 = rhs parseState 3
reportParseErrorAt mComma2 (FSComp.SR.parsExpectingExpressionInTuple ())
if not $4 then reportParseErrorAt mComma2 (FSComp.SR.parsExpectedExpressionAfterToken ())
let expr1 = arbExpr ("tupleExpr3", mComma1.EndRange)
let expr2 = arbExpr ("tupleExpr4", mComma2.EndRange)
expr2 :: expr1 :: exprs, mComma2 :: mComma1 :: commas }
| declExpr COMMA ends_coming_soon_or_recover
{ let commaRange = rhs parseState 2
if not $3 then reportParseErrorAt commaRange (FSComp.SR.parsExpectedExpressionAfterToken ())
[arbExpr ("tupleExpr
2
", commaRange.EndRange); $1], [commaRange] }
[arbExpr ("tupleExpr
5
", commaRange.EndRange); $1], [commaRange] }
| declExpr COMMA declExpr
{ [$3; $1], [rhs parseState 2] }
| COMMA declExpr
{ let commaRange = rhs parseState 1
reportParseErrorAt commaRange (FSComp.SR.parsExpectingExpressionInTuple ())
[$2; arbExpr ("tupleExpr3", commaRange.StartRange)], [commaRange] }
| COMMA ends_coming_soon_or_recover
{ let commaRange = rhs parseState 1
if not $2 then reportParseErrorAt commaRange (FSComp.SR.parsExpectedExpressionAfterToken ())
[arbExpr ("tupleExpr4", commaRange.EndRange); arbExpr ("tupleExpr5", commaRange.StartRange)], [commaRange] }
| declExpr COMMA COMMA ends_coming_soon_or_recover
{ let mComma1 = rhs parseState 2
let mComma2 = rhs parseState 3
reportParseErrorAt mComma2 (FSComp.SR.parsExpectingExpressionInTuple ())
if not $4 then reportParseErrorAt mComma2 (FSComp.SR.parsExpectedExpressionAfterToken ())
let expr1 = arbExpr ("tupleExpr6", mComma1.EndRange)
let expr2 = arbExpr ("tupleExpr7", mComma2.EndRange)
[expr2; expr1; $1], [mComma2; mComma1] }
| declExpr COMMA COMMA declExpr
{ let mComma1 = rhs parseState 2
let mComma2 = rhs parseState 3
reportParseErrorAt mComma2 (FSComp.SR.parsExpectingExpressionInTuple ())
let expr = arbExpr ("tupleExpr8", mComma1.EndRange)
[$4; expr; $1], [mComma2; mComma1] }
minusExpr:
| INFIX_AT_HAT_OP minusExpr
...
...
@@ -4744,6 +4764,19 @@ parenExpr:
//let mLhs = if $2 then unionRangeWithPos mLeftParen (rhs parseState 2).Start else mLeftParen
//arbExpr ("parenExpr2", mLhs) }
| LPAREN COMMA declExpr rparen
{ let mComma = rhs parseState 2
let mLparen = rhs parseState 1
let mRparen = rhs parseState 3
let errorExpr = arbExpr ("tupleExpr3", mComma.EndRange)
let mTuple = unionRanges mComma $3.Range
let tupleExpr =
match $3 with
| SynExpr.Tuple(false, exprs, commas, m) ->
SynExpr.Tuple(false, errorExpr :: exprs, mComma :: commas, mTuple)
| expr -> SynExpr.Tuple(false, [errorExpr; expr], [mComma], mTuple)
SynExpr.Paren(tupleExpr, mLparen, Some mRparen, rhs2 parseState 1 4) }
parenExprBody:
| typars COLON LPAREN classMemberSpfn rparen typedSequentialExpr
{ (fun m -> SynExpr.TraitCall($1, $4, $6, m)) } /* disambiguate: x $a.id(x) */
...
...
tests/service/ParserTests.fs
浏览文件 @
024b98d0
...
...
@@ -210,119 +210,6 @@ let checkRangeCountAndOrder commas =
|>
List
.
pairwise
|>
List
.
iter
(
assertIsBefore
id
))
[<
Test
>]
let
``Expr - Tuple 01``
()
=
let
parseResults
=
getParseResults
"""
(,)
(,,)
(,,,)
"""
let
exprs
=
getSingleModuleMemberDecls
parseResults
|>
List
.
map
getSingleParenInnerExpr
match
exprs
with
|
[
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e11
;
SynExpr
.
ArbitraryAfterError
_
as
e12
],
c1
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e21
;
SynExpr
.
ArbitraryAfterError
_
as
e22
;
SynExpr
.
ArbitraryAfterError
_
as
e23
],
c2
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e31
;
SynExpr
.
ArbitraryAfterError
_
as
e32
;
SynExpr
.
ArbitraryAfterError
_
as
e33
;
SynExpr
.
ArbitraryAfterError
_
as
e34
],
c3
,
_)
]
->
[
e11
;
e12
;
e21
;
e22
;
e23
;
e31
;
e32
;
e33
;
e34
]
|>
checkNodeOrder
[
c1
,
1
;
c2
,
2
;
c3
,
3
]
|>
checkRangeCountAndOrder
|
_
->
failwith
"Unexpected tree"
[<
Test
>]
let
``Expr - Tuple 02``
()
=
let
parseResults
=
getParseResults
"""
(1,)
(,1)
(1,1)
"""
let
exprs
=
getSingleModuleMemberDecls
parseResults
|>
List
.
map
getSingleParenInnerExpr
match
exprs
with
|
[
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
as
e11
;
SynExpr
.
ArbitraryAfterError
_
as
e12
],
c1
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e21
;
SynExpr
.
Const
_
as
e22
],
c2
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
as
e31
;
SynExpr
.
Const
_
as
e32
],
c3
,
_)
]
->
[
e11
;
e12
;
e21
;
e22
;
e31
;
e32
]
|>
checkNodeOrder
[
c1
,
1
;
c2
,
1
;
c3
,
1
]
|>
checkRangeCountAndOrder
|
_
->
failwith
"Unexpected tree"
[<
Test
>]
let
``Expr - Tuple 03``
()
=
let
parseResults
=
getParseResults
"""
(1,,)
(,1,)
(,,1)
(1,1,)
(,1,1)
(1,,1)
(1,1,1)
"""
let
exprs
=
getSingleModuleMemberDecls
parseResults
|>
List
.
map
getSingleParenInnerExpr
match
exprs
with
|
[
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
as
e11
;
SynExpr
.
ArbitraryAfterError
_
as
e12
;
SynExpr
.
ArbitraryAfterError
_
as
e13
],
c1
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e21
;
SynExpr
.
Const
_
as
e22
;
SynExpr
.
ArbitraryAfterError
_
as
e23
],
c2
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e31
;
SynExpr
.
ArbitraryAfterError
_
as
e32
;
SynExpr
.
Const
_
as
e33
],
c3
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
as
e41
;
SynExpr
.
Const
_
as
e42
;
SynExpr
.
ArbitraryAfterError
_
as
e43
],
c4
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e51
;
SynExpr
.
Const
_
as
e52
;
SynExpr
.
Const
_
as
e53
],
c5
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
as
e61
;
SynExpr
.
ArbitraryAfterError
_
as
e62
;
SynExpr
.
Const
_
as
e63
],
c6
,
_)
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
as
e71
;
SynExpr
.
Const
_
as
e72
;
SynExpr
.
Const
_
as
e73
],
c7
,
_)
]
->
[
e11
;
e12
;
e13
;
e21
;
e22
;
e23
;
e31
;
e32
;
e33
e41
;
e42
;
e43
;
e51
;
e52
;
e53
;
e61
;
e62
;
e63
e71
;
e72
;
e73
]
|>
checkNodeOrder
[
c1
,
2
;
c2
,
2
;
c3
,
2
c4
,
2
;
c5
,
2
;
c6
,
2
c7
,
2
]
|>
checkRangeCountAndOrder
|
_
->
failwith
"Unexpected tree"
[<
Test
>]
let
``Expr - Tuple 04``
()
=
let
parseResults
=
getParseResults
"""
(,1,,2,3,,4,)
"""
let
exprs
=
getSingleModuleMemberDecls
parseResults
|>
List
.
map
getSingleParenInnerExpr
match
exprs
with
|
[
SynExpr
.
Tuple
(_,
[
SynExpr
.
ArbitraryAfterError
_
as
e1
SynExpr
.
Const
_
as
e2
SynExpr
.
ArbitraryAfterError
_
as
e3
SynExpr
.
Const
_
as
e4
SynExpr
.
Const
_
as
e5
SynExpr
.
ArbitraryAfterError
_
as
e6
SynExpr
.
Const
_
as
e7
SynExpr
.
ArbitraryAfterError
_
as
e8
],
c
,
_)
]
->
[
e1
;
e2
;
e3
;
e4
;
e5
;
e6
;
e7
;
e8
]
|>
checkNodeOrder
[
c
,
7
]
|>
checkRangeCountAndOrder
|
_
->
failwith
"Unexpected tree"
[<
Test
>]
let
``Expr - Tuple 05``
()
=
let
parseResults
=
getParseResults
"""
(1,
"""
match
getSingleModuleMemberDecls
parseResults
|>
List
.
map
getSingleParenInnerExpr
with
|
[
SynExpr
.
FromParseError
(
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_;
SynExpr
.
ArbitraryAfterError
_],
_,
_),
_)
]
->
()
|
_
->
failwith
"Unexpected tree"
[<
Test
>]
let
``Expr - Tuple 06``
()
=
let
parseResults
=
getParseResults
"""
(1,,,2)
"""
let
synExprs
=
getSingleModuleMemberDecls
parseResults
|>
List
.
map
getSingleParenInnerExpr
match
synExprs
with
|
[
SynExpr
.
Tuple
(_,
[
SynExpr
.
Const
_
SynExpr
.
ArbitraryAfterError
_
SynExpr
.
ArbitraryAfterError
_
SynExpr
.
Const
_
],
_,
_)
]
->
()
|
_
->
failwith
"Unexpected tree"
[<
Test
>]
let
``Expr - Tuple 07``
()
=
let
parseResults
=
getParseResults
"""
...
...
tests/service/data/SyntaxTree/Expression/Binary - Eq 01.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
a
=
b
tests/service/data/SyntaxTree/Expression/Binary - Eq 01.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 01.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
2
--
3
,
3
)),
Ident
a
,
(
3
,
0
--
3
,
3
)),
Ident
b
,
(
3
,
0
--
3
,
5
)),
(
3
,
0
--
3
,
5
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
5
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Binary - Eq 02.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
M
(
a
=
b
)
tests/service/data/SyntaxTree/Expression/Binary - Eq 02.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 02.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
Atomic
,
false
,
Ident
M
,
Paren
(
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
4
--
3
,
5
)),
Ident
a
,
(
3
,
2
--
3
,
5
)),
Ident
b
,
(
3
,
2
--
3
,
7
)),
(
3
,
1
--
3
,
2
),
Some
(
3
,
7
--
3
,
8
),
(
3
,
1
--
3
,
8
)),
(
3
,
0
--
3
,
8
)),
(
3
,
0
--
3
,
8
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
8
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Binary - Eq 03.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
M
(
a
=
)
tests/service/data/SyntaxTree/Expression/Binary - Eq 03.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 03.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
Atomic
,
false
,
Ident
M
,
Paren
(
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
4
--
3
,
5
)),
Ident
a
,
(
3
,
2
--
3
,
5
)),
ArbitraryAfterError
(
"declExprInfixEquals"
,
(
3
,
5
--
3
,
5
)),
(
3
,
2
--
3
,
5
)),
(
3
,
1
--
3
,
2
),
Some
(
3
,
6
--
3
,
7
),
(
3
,
1
--
3
,
7
)),
(
3
,
0
--
3
,
7
)),
(
3
,
0
--
3
,
7
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
7
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
4
)
-
(
3
,
5
)
parse
error
Unexpected
token
'='
or
incomplete
expression
tests/service/data/SyntaxTree/Expression/Binary - Eq 04.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
M
(
a
=
1
,
b
=)
tests/service/data/SyntaxTree/Expression/Binary - Eq 04.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 04.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
Atomic
,
false
,
Ident
M
,
Paren
(
Tuple
(
false
,
[
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
4
--
3
,
5
)),
Ident
a
,
(
3
,
2
--
3
,
5
)),
Const
(
Int32
1
,
(
3
,
6
--
3
,
7
)),
(
3
,
2
--
3
,
7
));
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
11
--
3
,
12
)),
Ident
b
,
(
3
,
9
--
3
,
12
)),
ArbitraryAfterError
(
"declExprInfixEquals"
,
(
3
,
12
--
3
,
12
)),
(
3
,
9
--
3
,
12
))],
[(
3
,
7
--
3
,
8
)],
(
3
,
2
--
3
,
12
)),
(
3
,
1
--
3
,
2
),
Some
(
3
,
12
--
3
,
13
),
(
3
,
1
--
3
,
13
)),
(
3
,
0
--
3
,
13
)),
(
3
,
0
--
3
,
13
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
13
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
11
)
-
(
3
,
12
)
parse
error
Unexpected
token
'='
or
incomplete
expression
tests/service/data/SyntaxTree/Expression/Binary - Eq 05.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
M
(
a
=,
b
=
2
)
tests/service/data/SyntaxTree/Expression/Binary - Eq 05.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 05.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
Atomic
,
false
,
Ident
M
,
Paren
(
Tuple
(
false
,
[
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
4
--
3
,
5
)),
Ident
a
,
(
3
,
2
--
3
,
5
)),
ArbitraryAfterError
(
"declExprInfixEquals"
,
(
3
,
5
--
3
,
5
)),
(
3
,
2
--
3
,
5
));
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
9
--
3
,
10
)),
Ident
b
,
(
3
,
7
--
3
,
10
)),
Const
(
Int32
2
,
(
3
,
11
--
3
,
12
)),
(
3
,
7
--
3
,
12
))],
[(
3
,
5
--
3
,
6
)],
(
3
,
2
--
3
,
12
)),
(
3
,
1
--
3
,
2
),
Some
(
3
,
12
--
3
,
13
),
(
3
,
1
--
3
,
13
)),
(
3
,
0
--
3
,
13
)),
(
3
,
0
--
3
,
13
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
13
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
5
)
-
(
3
,
6
)
parse
error
Unexpected
symbol
','
in
expression
(
3
,
4
)
-
(
3
,
5
)
parse
error
Unexpected
token
'='
or
incomplete
expression
tests/service/data/SyntaxTree/Expression/Binary - Eq 06.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
M
(
a
=
1
,
b
=,
c
=
3
)
tests/service/data/SyntaxTree/Expression/Binary - Eq 06.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 06.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
Atomic
,
false
,
Ident
M
,
Paren
(
Tuple
(
false
,
[
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
4
--
3
,
5
)),
Ident
a
,
(
3
,
2
--
3
,
5
)),
Const
(
Int32
1
,
(
3
,
6
--
3
,
7
)),
(
3
,
2
--
3
,
7
));
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
11
--
3
,
12
)),
Ident
b
,
(
3
,
9
--
3
,
12
)),
ArbitraryAfterError
(
"declExprInfixEquals"
,
(
3
,
12
--
3
,
12
)),
(
3
,
9
--
3
,
12
));
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
16
--
3
,
17
)),
Ident
c
,
(
3
,
14
--
3
,
17
)),
Const
(
Int32
3
,
(
3
,
18
--
3
,
19
)),
(
3
,
14
--
3
,
19
))],
[(
3
,
7
--
3
,
8
);
(
3
,
12
--
3
,
13
)],
(
3
,
2
--
3
,
19
)),
(
3
,
1
--
3
,
2
),
Some
(
3
,
19
--
3
,
20
),
(
3
,
1
--
3
,
20
)),
(
3
,
0
--
3
,
20
)),
(
3
,
0
--
3
,
20
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
20
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
12
)
-
(
3
,
13
)
parse
error
Unexpected
symbol
','
in
expression
(
3
,
11
)
-
(
3
,
12
)
parse
error
Unexpected
token
'='
or
incomplete
expression
tests/service/data/SyntaxTree/Expression/Binary - Eq 07.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
M
(
a
=
1
,
,
c
=
3
)
tests/service/data/SyntaxTree/Expression/Binary - Eq 07.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary - Eq 07.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
Atomic
,
false
,
Ident
M
,
Paren
(
Tuple
(
false
,
[
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
4
--
3
,
5
)),
Ident
a
,
(
3
,
2
--
3
,
5
)),
Const
(
Int32
1
,
(
3
,
6
--
3
,
7
)),
(
3
,
2
--
3
,
7
));
ArbitraryAfterError
(
"tupleExpr8"
,
(
3
,
8
--
3
,
8
));
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Equality
],
[],
[
Some
(
OriginalNotation
"="
)]),
None
,
(
3
,
13
--
3
,
14
)),
Ident
c
,
(
3
,
11
--
3
,
14
)),
Const
(
Int32
3
,
(
3
,
15
--
3
,
16
)),
(
3
,
11
--
3
,
16
))],
[(
3
,
7
--
3
,
8
);
(
3
,
9
--
3
,
10
)],
(
3
,
2
--
3
,
16
)),
(
3
,
1
--
3
,
2
),
Some
(
3
,
16
--
3
,
17
),
(
3
,
1
--
3
,
17
)),
(
3
,
0
--
3
,
17
)),
(
3
,
0
--
3
,
17
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
17
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
9
)
-
(
3
,
10
)
parse
error
Expecting
expression
tests/service/data/SyntaxTree/Expression/Binary 01.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
1
+
2
tests/service/data/SyntaxTree/Expression/Binary 01.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary 01.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Addition
],
[],
[
Some
(
OriginalNotation
"+"
)]),
None
,
(
3
,
2
--
3
,
3
)),
Const
(
Int32
1
,
(
3
,
0
--
3
,
1
)),
(
3
,
0
--
3
,
3
)),
Const
(
Int32
2
,
(
3
,
4
--
3
,
5
)),
(
3
,
0
--
3
,
5
)),
(
3
,
0
--
3
,
5
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
5
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Binary 02.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
1
+
2
+
3
tests/service/data/SyntaxTree/Expression/Binary 02.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Binary 02.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Addition
],
[],
[
Some
(
OriginalNotation
"+"
)]),
None
,
(
3
,
6
--
3
,
7
)),
App
(
NonAtomic
,
false
,
App
(
NonAtomic
,
true
,
LongIdent
(
false
,
SynLongIdent
([
op_Addition
],
[],
[
Some
(
OriginalNotation
"+"
)]),
None
,
(
3
,
2
--
3
,
3
)),
Const
(
Int32
1
,
(
3
,
0
--
3
,
1
)),
(
3
,
0
--
3
,
3
)),
Const
(
Int32
2
,
(
3
,
4
--
3
,
5
)),
(
3
,
0
--
3
,
5
)),
(
3
,
0
--
3
,
7
)),
Const
(
Int32
3
,
(
3
,
8
--
3
,
9
)),
(
3
,
0
--
3
,
9
)),
(
3
,
0
--
3
,
9
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
9
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 01.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
a
,)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 01.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 01.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Ident
a
;
ArbitraryAfterError
(
"tupleExpr5"
,
(
3
,
3
--
3
,
3
))],
[(
3
,
2
--
3
,
3
)],
(
3
,
1
--
3
,
3
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
3
--
3
,
4
),
(
3
,
0
--
3
,
4
)),
(
3
,
0
--
3
,
4
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
4
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
2
)
-
(
3
,
3
)
parse
error
Expected
an
expression
after
this
point
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 02.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(,
b
)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 02.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 02.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
ArbitraryAfterError
(
"tupleExpr3"
,
(
3
,
2
--
3
,
2
));
Ident
b
],
[(
3
,
1
--
3
,
2
)],
(
3
,
1
--
3
,
3
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
2
--
3
,
3
),
(
3
,
0
--
3
,
4
)),
(
3
,
0
--
3
,
4
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
4
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 03.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(,
b
,
c
)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 03.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 03.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
ArbitraryAfterError
(
"tupleExpr3"
,
(
3
,
2
--
3
,
2
));
Ident
b
;
Ident
c
],
[(
3
,
1
--
3
,
2
);
(
3
,
3
--
3
,
4
)],
(
3
,
1
--
3
,
5
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
2
--
3
,
5
),
(
3
,
0
--
3
,
6
)),
(
3
,
0
--
3
,
6
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
6
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 04.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
a
,,
c
)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 04.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 04.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Ident
a
;
ArbitraryAfterError
(
"tupleExpr8"
,
(
3
,
3
--
3
,
3
));
Ident
c
],
[(
3
,
2
--
3
,
3
);
(
3
,
3
--
3
,
4
)],
(
3
,
1
--
3
,
5
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
5
--
3
,
6
),
(
3
,
0
--
3
,
6
)),
(
3
,
0
--
3
,
6
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
6
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
3
)
-
(
3
,
4
)
parse
error
Expecting
expression
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 05.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
a
,
b
,)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 05.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 05.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Ident
a
;
Ident
b
;
ArbitraryAfterError
(
"tupleExpr1"
,
(
3
,
5
--
3
,
5
))],
[(
3
,
2
--
3
,
3
);
(
3
,
4
--
3
,
5
)],
(
3
,
1
--
3
,
5
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
5
--
3
,
6
),
(
3
,
0
--
3
,
6
)),
(
3
,
0
--
3
,
6
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
6
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
4
)
-
(
3
,
5
)
parse
error
Expected
an
expression
after
this
point
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 06.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(,,
c
)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 06.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 06.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Tuple
(
false
,
[
ArbitraryAfterError
(
"parenExpr2"
,
(
3
,
0
--
3
,
3
));
Ident
c
],
[(
3
,
2
--
3
,
3
)],
(
3
,
0
--
3
,
4
)),
(
3
,
0
--
3
,
4
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
4
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
2
)
-
(
3
,
3
)
parse
error
Unexpected
symbol
','
in
expression
(
3
,
0
)
-
(
3
,
1
)
parse
error
Unmatched
'('
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 07.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
a
,,
c
,,
e
,)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 07.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 07.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Ident
a
;
ArbitraryAfterError
(
"tupleExpr8"
,
(
3
,
3
--
3
,
3
));
Ident
c
;
ArbitraryAfterError
(
"tupleExpr2"
,
(
3
,
6
--
3
,
6
));
Ident
e
;
ArbitraryAfterError
(
"tupleExpr1"
,
(
3
,
9
--
3
,
9
))],
[(
3
,
2
--
3
,
3
);
(
3
,
3
--
3
,
4
);
(
3
,
5
--
3
,
6
);
(
3
,
6
--
3
,
7
);
(
3
,
8
--
3
,
9
)],
(
3
,
1
--
3
,
9
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
9
--
3
,
10
),
(
3
,
0
--
3
,
10
)),
(
3
,
0
--
3
,
10
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
10
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
3
)
-
(
3
,
4
)
parse
error
Expecting
expression
(
3
,
6
)
-
(
3
,
7
)
parse
error
Expecting
expression
(
3
,
8
)
-
(
3
,
9
)
parse
error
Expected
an
expression
after
this
point
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 08.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
1
,
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 08.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 08.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
FromParseError
(
Tuple
(
false
,
[
Const
(
Int32
1
,
(
3
,
1
--
3
,
2
));
ArbitraryAfterError
(
"tupleExpr5"
,
(
3
,
3
--
3
,
3
))],
[(
3
,
2
--
3
,
3
)],
(
3
,
1
--
3
,
3
)),
(
3
,
1
--
3
,
3
)),
(
3
,
0
--
3
,
1
),
None
,
(
3
,
0
--
4
,
0
)),
(
3
,
0
--
4
,
0
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
4
,
0
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
4
,
0
)
-
(
4
,
0
)
parse
warning
Possible
incorrect
indentation
:
this
token
is
offside
of
context
started
at
position
(
1
:
1
)
.
Try
indenting
this
token
further
or
using
standard
formatting
conventions
.
(
3
,
2
)
-
(
3
,
3
)
parse
error
Expected
an
expression
after
this
point
(
3
,
0
)
-
(
3
,
1
)
parse
error
Unmatched
'('
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 09.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
1
,,,
2
)
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 09.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 09.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Const
(
Int32
1
,
(
3
,
1
--
3
,
2
));
ArbitraryAfterError
(
"tupleExpr6"
,
(
3
,
3
--
3
,
3
));
ArbitraryAfterError
(
"tupleExpr7"
,
(
3
,
4
--
3
,
4
));
Const
(
Int32
2
,
(
3
,
5
--
3
,
6
))],
[(
3
,
2
--
3
,
3
);
(
3
,
3
--
3
,
4
);
(
3
,
4
--
3
,
5
)],
(
3
,
1
--
3
,
6
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
6
--
3
,
7
),
(
3
,
0
--
3
,
7
)),
(
3
,
0
--
3
,
7
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
7
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
4
)
-
(
3
,
5
)
parse
error
Unexpected
symbol
','
in
expression
(
3
,
3
)
-
(
3
,
4
)
parse
error
Expecting
expression
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
let
x
=
1
,
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 10.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 10.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Let
(
false
,
[
SynBinding
(
None
,
Normal
,
false
,
false
,
[],
PreXmlDoc
((
3
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
SynValData
(
None
,
SynValInfo
([],
SynArgInfo
([],
false
,
None
)),
None
),
Named
(
SynIdent
(
x
,
None
),
false
,
None
,
(
3
,
4
--
3
,
5
)),
None
,
Tuple
(
false
,
[
Const
(
Int32
1
,
(
3
,
8
--
3
,
9
));
ArbitraryAfterError
(
"tupleExpr5"
,
(
3
,
10
--
3
,
10
))],
[(
3
,
9
--
3
,
10
)],
(
3
,
8
--
3
,
10
)),
(
3
,
4
--
3
,
5
),
Yes
(
3
,
0
--
3
,
10
),
{
LeadingKeyword
=
Let
(
3
,
0
--
3
,
3
)
InlineKeyword
=
None
EqualsRange
=
Some
(
3
,
6
--
3
,
7
)
}
)],
(
3
,
0
--
3
,
10
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
10
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
4
,
0
)
-
(
4
,
0
)
parse
warning
Possible
incorrect
indentation
:
this
token
is
offside
of
context
started
at
position
(
3
:
9
)
.
Try
indenting
this
token
further
or
using
standard
formatting
conventions
.
(
3
,
9
)
-
(
3
,
10
)
parse
error
Expected
an
expression
after
this
point
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
let
x
=
,
1
tests/service/data/SyntaxTree/Expression/Tuple - Missing item 11.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple - Missing item 11.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Let
(
false
,
[
SynBinding
(
None
,
Normal
,
false
,
false
,
[],
PreXmlDoc
((
3
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
SynValData
(
None
,
SynValInfo
([],
SynArgInfo
([],
false
,
None
)),
None
),
Named
(
SynIdent
(
x
,
None
),
false
,
None
,
(
3
,
4
--
3
,
5
)),
None
,
ArbitraryAfterError
(
"localBinding1"
,
(
3
,
7
--
3
,
7
)),
(
3
,
4
--
3
,
5
),
Yes
(
3
,
4
--
3
,
7
),
{
LeadingKeyword
=
Let
(
3
,
0
--
3
,
3
)
InlineKeyword
=
None
EqualsRange
=
Some
(
3
,
6
--
3
,
7
)
}
)],
(
3
,
0
--
3
,
7
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
7
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
(
3
,
8
)
-
(
3
,
9
)
parse
error
Unexpected
symbol
','
in
binding
tests/service/data/SyntaxTree/Expression/Tuple 01.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
a
,
b
)
tests/service/data/SyntaxTree/Expression/Tuple 01.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple 01.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Ident
a
;
Ident
b
],
[(
3
,
2
--
3
,
3
)],
(
3
,
1
--
3
,
4
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
4
--
3
,
5
),
(
3
,
0
--
3
,
5
)),
(
3
,
0
--
3
,
5
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
5
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
tests/service/data/SyntaxTree/Expression/Tuple 02.fs
0 → 100644
浏览文件 @
024b98d0
module
Module
(
a
,
b
,
c
)
tests/service/data/SyntaxTree/Expression/Tuple 02.fs.bsl
0 → 100644
浏览文件 @
024b98d0
ImplFile
(
ParsedImplFileInput
(
"/root/Expression/Tuple 02.fs"
,
false
,
QualifiedNameOfFile
Module
,
[],
[],
[
SynModuleOrNamespace
([
Module
],
false
,
NamedModule
,
[
Expr
(
Paren
(
Tuple
(
false
,
[
Ident
a
;
Ident
b
;
Ident
c
],
[(
3
,
2
--
3
,
3
);
(
3
,
4
--
3
,
5
)],
(
3
,
1
--
3
,
6
)),
(
3
,
0
--
3
,
1
),
Some
(
3
,
6
--
3
,
7
),
(
3
,
0
--
3
,
7
)),
(
3
,
0
--
3
,
7
))],
PreXmlDoc
((
1
,
0
),
FSharp
.
Compiler
.
Xml
.
XmlDocCollector
),
[],
None
,
(
1
,
0
--
3
,
7
),
{
LeadingKeyword
=
Module
(
1
,
0
--
1
,
6
)
}
)],
(
true
,
true
),
{
ConditionalDirectives
=
[]
CodeComments
=
[]
}
,
set
[]))
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录