Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
lwm1986
roslyn
提交
7df5a155
R
roslyn
项目概览
lwm1986
/
roslyn
与 Fork 源项目一致
从无法访问的项目Fork
通知
1
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
R
roslyn
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
体验新版 GitCode,发现更多精彩内容 >>
提交
7df5a155
编写于
6月 17, 2020
作者:
C
Cyrus Najmabadi
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
simplify
上级
680bac65
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
9 addition
and
9 deletion
+9
-9
src/Features/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexLexer.cs
...rtable/EmbeddedLanguages/RegularExpressions/RegexLexer.cs
+2
-2
src/Features/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexParser.cs
...table/EmbeddedLanguages/RegularExpressions/RegexParser.cs
+7
-7
未找到文件。
src/Features/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexLexer.cs
浏览文件 @
7df5a155
...
...
@@ -101,7 +101,7 @@ private ImmutableArray<RegexTrivia> ScanLeadingTrivia(bool allowTrivia, RegexOpt
return
ImmutableArray
<
RegexTrivia
>.
Empty
;
}
var
result
=
ArrayBuilder
<
RegexTrivia
>.
GetInstance
(
);
using
var
_
=
ArrayBuilder
<
RegexTrivia
>.
GetInstance
(
out
var
result
);
while
(
Position
<
Text
.
Length
)
{
...
...
@@ -122,7 +122,7 @@ private ImmutableArray<RegexTrivia> ScanLeadingTrivia(bool allowTrivia, RegexOpt
break
;
}
return
result
.
ToImmutable
AndFree
();
return
result
.
ToImmutable
();
}
public
RegexTrivia
?
ScanComment
(
RegexOptions
options
)
...
...
src/Features/Core/Portable/EmbeddedLanguages/RegularExpressions/RegexParser.cs
浏览文件 @
7df5a155
...
...
@@ -171,11 +171,11 @@ private RegexTree ParseTree()
var
root
=
new
RegexCompilationUnit
(
expression
,
_currentToken
);
var
seenDiagnostics
=
new
HashSet
<
EmbeddedDiagnostic
>();
var
diagnostics
=
ArrayBuilder
<
EmbeddedDiagnostic
>.
GetInstance
(
);
using
var
_
=
ArrayBuilder
<
EmbeddedDiagnostic
>.
GetInstance
(
out
var
diagnostics
);
CollectDiagnostics
(
root
,
seenDiagnostics
,
diagnostics
);
return
new
RegexTree
(
_lexer
.
Text
,
root
,
diagnostics
.
ToImmutable
AndFree
(),
_lexer
.
Text
,
root
,
diagnostics
.
ToImmutable
(),
_captureNamesToSpan
,
_captureNumbersToSpan
);
}
...
...
@@ -259,7 +259,7 @@ private RegexExpressionNode ParseAlternatingSequencesWorker(bool consumeClosePar
private
RegexSequenceNode
ParseSequence
(
bool
consumeCloseParen
)
{
using
var
_
=
ArrayBuilder
<
RegexExpressionNode
>.
GetInstance
(
out
var
builder
);
using
var
_
1
=
ArrayBuilder
<
RegexExpressionNode
>.
GetInstance
(
out
var
builder
);
while
(
ShouldConsumeSequenceElement
(
consumeCloseParen
))
{
var
last
=
builder
.
Count
==
0
?
null
:
builder
.
Last
();
...
...
@@ -269,10 +269,10 @@ private RegexSequenceNode ParseSequence(bool consumeCloseParen)
// We wil commonly get tons of text nodes in a row. For example, the
// regex `abc` will be three text nodes in a row. To help save on memory
// try to merge that into one single text node.
var
sequence
=
ArrayBuilder
<
RegexExpressionNode
>.
GetInstance
(
);
using
var
_2
=
ArrayBuilder
<
RegexExpressionNode
>.
GetInstance
(
out
var
sequence
);
MergeTextNodes
(
builder
,
sequence
);
return
new
RegexSequenceNode
(
sequence
.
ToImmutable
AndFree
());
return
new
RegexSequenceNode
(
sequence
.
ToImmutable
());
}
private
static
void
MergeTextNodes
(
ArrayBuilder
<
RegexExpressionNode
>
list
,
ArrayBuilder
<
RegexExpressionNode
>
final
)
...
...
@@ -1255,7 +1255,7 @@ private RegexBaseCharacterClassNode ParseCharacterClass()
// We wil commonly get tons of text nodes in a row. For example, the
// regex `[abc]` will be three text nodes in a row. To help save on memory
// try to merge that into one single text node.
var
contents
=
ArrayBuilder
<
RegexExpressionNode
>.
GetInstance
(
);
using
var
_
=
ArrayBuilder
<
RegexExpressionNode
>.
GetInstance
(
out
var
contents
);
MergeTextNodes
(
builder
,
contents
);
if
(
closeBracketToken
.
IsMissing
)
...
...
@@ -1265,7 +1265,7 @@ private RegexBaseCharacterClassNode ParseCharacterClass()
GetTokenStartPositionSpan
(
_currentToken
)));
}
var
components
=
new
RegexSequenceNode
(
contents
.
ToImmutable
AndFree
());
var
components
=
new
RegexSequenceNode
(
contents
.
ToImmutable
());
return
caretToken
.
IsMissing
?
(
RegexBaseCharacterClassNode
)
new
RegexCharacterClassNode
(
openBracketToken
,
components
,
closeBracketToken
)
:
new
RegexNegatedCharacterClassNode
(
openBracketToken
,
caretToken
,
components
,
closeBracketToken
);
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录