Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
scie
提交
f8241d7c
S
scie
项目概览
Phodal
/
scie
通知
2
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
S
scie
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
未验证
提交
f8241d7c
编写于
9月 09, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: find the error testcases for scanner
上级
825df695
变更
3
显示空白变更内容
内联
并排
Showing
3 changed file
with
33 addition
and
4 deletion
+33
-4
scie-grammar/src/grammar/grammar.rs
scie-grammar/src/grammar/grammar.rs
+4
-0
scie-scanner/src/scanner/scanner.rs
scie-scanner/src/scanner/scanner.rs
+22
-3
vscode-tests/vendor/main.js
vscode-tests/vendor/main.js
+7
-1
未找到文件。
scie-grammar/src/grammar/grammar.rs
浏览文件 @
f8241d7c
...
...
@@ -526,6 +526,10 @@ impl Grammar {
let
mut
rule
=
stack
.get_rule
(
self
);
let
rule_info
=
rule
.clone
()
.get_rule_instance
();
if
rule
.get_rule
()
.id
==
36
{
println!
(
"{:?}"
,
line_pos
);
}
let
mut
rule_scanner
;
match
rule_info
{
RuleEnum
::
BeginEndRule
(
mut
begin_end_rule
)
=>
{
...
...
scie-scanner/src/scanner/scanner.rs
浏览文件 @
f8241d7c
...
...
@@ -111,8 +111,8 @@ impl Scanner {
}
pub
fn
str_vec_to_string
<
I
,
T
>
(
iter
:
I
)
->
Vec
<
String
>
where
I
:
IntoIterator
<
Item
=
T
>
,
where
I
:
IntoIterator
<
Item
=
T
>
,
T
:
Into
<
String
>
,
{
iter
.into_iter
()
.map
(
Into
::
into
)
.collect
()
...
...
@@ -358,4 +358,23 @@ mod tests {
assert_eq!
(
4
,
onig_match
.capture_indices
[
0
]
.start
);
assert_eq!
(
4
,
onig_match
.capture_indices
[
0
]
.end
);
}
#[test]
fn
should_return_correct_index_when_for_markdown
()
{
let
origin
=
vec!
[
"^"
,
"
\\\n
"
,
"%|
\\
*"
,
"(^[
\t
]+)?(?=#)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
];
let
_
rules
=
vec!
[
-
1
,
37
,
38
,
2
,
12
,
14
];
let
debug_regex
=
str_vec_to_string
(
origin
);
let
mut
scanner
=
Scanner
::
new
(
debug_regex
);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"%.o: %.c $(DEPS)
"
,
),
4
,
);
let
onig_match
=
result
.unwrap
();
assert_eq!
(
2
,
onig_match
.index
);
assert_eq!
(
5
,
onig_match
.capture_indices
[
0
]
.start
);
assert_eq!
(
6
,
onig_match
.capture_indices
[
0
]
.end
);
}
}
vscode-tests/vendor/main.js
浏览文件 @
f8241d7c
...
...
@@ -919,6 +919,11 @@ function matchRule(grammar, lineText, isFirstLine, linePos, stack, anchorPositio
console
.
log
(
"
matched rule id:
"
+
ruleScanner
.
rules
[
r
.
index
]
+
"
from
"
+
r
.
captureIndices
[
0
].
start
+
"
to
"
+
r
.
captureIndices
[
0
].
end
);
}
}
if
(
rule
.
id
===
36
)
{
console
.
log
(
lineText
,
linePos
,
stack
.
depth
);
console
.
log
(
JSON
.
stringify
(
ruleScanner
));
console
.
log
(
JSON
.
stringify
(
r
));
}
if
(
r
)
{
let
result
=
{
captureIndices
:
r
.
captureIndices
,
...
...
@@ -1147,8 +1152,9 @@ function _tokenizeString(grammar, lineText, isFirstLine, linePos, stack, lineTok
}
}
if
(
captureIndices
[
0
].
end
>
linePos
)
{
// Advance stream
linePos
=
captureIndices
[
0
].
end
;
// Advance stream
console
.
log
(
linePos
);
isFirstLine
=
false
;
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录