Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
scie
提交
ae7d6102
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 搜索 >>
未验证
提交
ae7d6102
编写于
8月 24, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: find stackoverflow issue
上级
2fab609c
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
22 addition
and
13 deletion
+22
-13
scie-grammar/src/grammar/grammar/mod.rs
scie-grammar/src/grammar/grammar/mod.rs
+3
-3
scie-grammar/src/rule.rs
scie-grammar/src/rule.rs
+19
-10
未找到文件。
scie-grammar/src/grammar/grammar/mod.rs
浏览文件 @
ae7d6102
...
...
@@ -189,8 +189,8 @@ impl IRuleRegistry for Grammar {
self
.last_rule_id
}
fn
get_rule
(
&
self
,
pattern_id
:
i32
)
->
Rule
{
Rule
::
new
(
ILocation
::
new
(),
pattern_id
,
None
,
None
)
fn
get_rule
(
&
self
,
pattern_id
:
i32
)
->
Box
<
dyn
AbstractRule
>
{
self
.rule_id2desc
[
&
pattern_id
]
.clone
(
)
}
fn
register_rule
(
&
mut
self
,
result
:
Box
<
dyn
AbstractRule
>
)
->
Box
<
dyn
AbstractRule
>
{
...
...
@@ -210,7 +210,7 @@ mod tests {
#[test]
fn
should_enable_run_grammar
()
{
let
path
=
Path
::
new
(
"test-cases/first-mate/fixtures/
java
.json"
);
let
path
=
Path
::
new
(
"test-cases/first-mate/fixtures/
c
.json"
);
let
mut
file
=
File
::
open
(
path
)
.unwrap
();
let
mut
data
=
String
::
new
();
file
.read_to_string
(
&
mut
data
)
.unwrap
();
...
...
scie-grammar/src/rule.rs
浏览文件 @
ae7d6102
...
...
@@ -42,7 +42,7 @@ impl RuleFactory {
for
(
id_str
,
value
)
in
capts
.clone
()
.map.capture_map
{
let
numeric_capture_id
:
i32
=
id_str
.parse
()
.unwrap_or
(
0
);
let
mut
retokenizeCapturedWithRuleId
=
0
;
println!
(
"{:?}"
,
numeric_capture_id
.clone
()
.to_string
());
//
println!("{:?}", numeric_capture_id.clone().to_string());
let
options_patterns
=
cloned_capts
.map
.capture_map
...
...
@@ -88,6 +88,7 @@ impl RuleFactory {
pattern_id
=
RuleFactory
::
get_compiled_rule_id
(
*
(
rule
)
.clone
(),
&
mut
(
*
helper
)
.clone
(),
repository
.clone
());
}
}
else
{
println!
(
"todo: {:?}"
,
pattern
.include
);
let
mut
external_grammar_name
:
Option
<
String
>
=
None
;
let
mut
external_grammar_include
:
Option
<
String
>
=
None
;
let
include_string
=
pattern
.include
.unwrap
();
...
...
@@ -100,9 +101,16 @@ impl RuleFactory {
let
(
_
,
include_last
)
=
include_string
.split_at
(
index
+
1
);
external_grammar_include
=
Some
(
String
::
from
(
include_last
));
//
println!("{:?}, {:?}", external_grammar_name, external_grammar_include);
println!
(
"{:?}, {:?}"
,
external_grammar_name
,
external_grammar_include
);
}
}
}
else
{
pattern_id
=
RuleFactory
::
get_compiled_rule_id
(
pattern
,
&
mut
(
*
helper
)
.clone
(),
repository
.clone
());
}
if
pattern_id
!=
-
1
{
let
rule
=
helper
.get_rule
(
pattern_id
);
println!
(
"{:?}"
,
rule
)
}
}
}
...
...
@@ -202,12 +210,13 @@ impl RuleFactory {
RuleFactory
::
compile_captures
(
desc
.begin_captures
,
helper
,
repository
.clone
());
let
end_rule_factory
=
RuleFactory
::
compile_captures
(
desc
.end_captures
,
helper
,
repository
.clone
());
let
pattern_factory
=
RuleFactory
::
compile_patterns
(
desc
.patterns
.clone
(),
Box
::
new
(
helper
),
repository
.clone
(),
);
//
let pattern_factory = RuleFactory::compile_patterns(
//
desc.patterns.clone(),
//
Box::new(helper),
//
repository.clone(),
//
);
// todo: register with compile patterns
let
begin_end_rule
=
BeginEndRule
::
new
(
desc
.location
.clone
(),
desc
.id
.unwrap
(),
...
...
@@ -218,7 +227,7 @@ impl RuleFactory {
desc
.end
,
end_rule_factory
,
desc
.apply_end_pattern_last
,
pattern_factory
,
//
pattern_factory,
);
helper
.register_rule
(
Box
::
new
(
begin_end_rule
));
...
...
@@ -375,7 +384,7 @@ impl BeginEndRule {
_
while
:
Option
<
String
>
,
while_captures
:
Vec
<
CaptureRule
>
,
apply_end_pattern_last
:
Option
<
bool
>
,
patterns
:
ICompilePatternsResult
,
//
patterns: ICompilePatternsResult,
)
->
BeginEndRule
{
BeginEndRule
{
rule
:
Rule
{
location
,
id
,
name
,
content_name
},
...
...
@@ -419,7 +428,7 @@ pub trait IRuleRegistry {
// fn method(&self) -> Self::Output;
fn
register_id
(
&
mut
self
)
->
i32
;
fn
get_rule
(
&
self
,
pattern_id
:
i32
)
->
Rule
;
fn
get_rule
(
&
self
,
pattern_id
:
i32
)
->
Box
<
dyn
AbstractRule
>
;
fn
register_rule
(
&
mut
self
,
result
:
Box
<
dyn
AbstractRule
>
)
->
Box
<
dyn
AbstractRule
>
;
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录