Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
scie
提交
5b18855c
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 搜索 >>
未验证
提交
5b18855c
编写于
8月 28, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: extract debug output method
上级
895f9340
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
19 addition
and
12 deletion
+19
-12
scie-grammar/src/grammar/grammar/mod.rs
scie-grammar/src/grammar/grammar/mod.rs
+13
-4
scie-grammar/src/rule/mod.rs
scie-grammar/src/rule/mod.rs
+5
-2
scie-grammar/src/rule/rule_factory.rs
scie-grammar/src/rule/rule_factory.rs
+1
-6
未找到文件。
scie-grammar/src/grammar/grammar/mod.rs
浏览文件 @
5b18855c
...
...
@@ -223,9 +223,7 @@ return 0;
// todo: fixed it
// assert_eq!(grammar.rule_id2desc.len(), 162);
let
j
=
serde_json
::
to_string
(
&
grammar
.rule_id2desc
)
.unwrap
();
let
mut
file
=
File
::
create
(
"program.json"
)
.unwrap
();
file
.write_all
(
j
.as_bytes
());
// debug_output(&grammar, String::from("program.json"));
}
#[test]
...
...
@@ -238,11 +236,22 @@ GitHub 漫游指南- a Chinese ebook on how to build a good project on Github. E
let
grammar
=
to_grammar
(
"test-cases/first-mate/fixtures/text.json"
,
code
);
assert_eq!
(
grammar
.rule_id2desc
.len
(),
8
);
}
fn
debug_output
(
grammar
:
&
Grammar
,
path
:
String
)
{
let
j
=
serde_json
::
to_string
(
&
grammar
.rule_id2desc
)
.unwrap
();
let
mut
file
=
File
::
create
(
"program.json"
)
.unwrap
();
let
mut
file
=
File
::
create
(
path
)
.unwrap
();
file
.write_all
(
j
.as_bytes
());
}
#[test]
fn
should_build_json_grammar
()
{
let
code
=
"{}"
;
let
grammar
=
to_grammar
(
"test-cases/first-mate/fixtures/json.json"
,
code
);
assert_eq!
(
grammar
.rule_id2desc
.len
(),
22
);
debug_output
(
&
grammar
,
String
::
from
(
"program.json"
));
}
fn
to_grammar
(
grammar_path
:
&
str
,
code
:
&
str
)
->
Grammar
{
let
path
=
Path
::
new
(
grammar_path
);
let
mut
file
=
File
::
open
(
path
)
.unwrap
();
...
...
scie-grammar/src/rule/mod.rs
浏览文件 @
5b18855c
...
...
@@ -237,6 +237,7 @@ impl AbstractRule for BeginEndRule {
#[derive(Clone,
Debug,
Serialize)]
pub
struct
CaptureRule
{
pub
rule
:
Rule
,
pub
retokenize_captured_with_rule_id
:
i32
}
impl
CaptureRule
{
...
...
@@ -248,10 +249,11 @@ impl CaptureRule {
id
:
0
,
name
:
None
,
content_name
:
None
}
},
retokenize_captured_with_rule_id
:
0
}
}
pub
fn
new
(
location
:
Option
<
ILocation
>
,
id
:
i32
,
name
:
Option
<
String
>
,
content_name
:
Option
<
String
>
)
->
Self
{
pub
fn
new
(
location
:
Option
<
ILocation
>
,
id
:
i32
,
name
:
Option
<
String
>
,
content_name
:
Option
<
String
>
,
retokenize_captured_with_rule_id
:
i32
)
->
Self
{
CaptureRule
{
rule
:
Rule
{
_
type
:
String
::
from
(
"CaptureRule"
),
...
...
@@ -260,6 +262,7 @@ impl CaptureRule {
name
,
content_name
,
},
retokenize_captured_with_rule_id
}
}
}
...
...
scie-grammar/src/rule/rule_factory.rs
浏览文件 @
5b18855c
...
...
@@ -57,12 +57,7 @@ impl RuleFactory {
pub
fn
create_capture_rule
(
helper
:
&
mut
Grammar
,
location
:
Option
<
ILocation
>
,
name
:
Option
<
String
>
,
content_name
:
Option
<
String
>
,
retokenizeCapturedWithRuleId
:
i32
)
->
Box
<
dyn
AbstractRule
>
{
let
id
=
helper
.register_id
();
let
rule
=
CaptureRule
::
new
(
location
,
id
,
name
,
content_name
,
);
let
rule
=
CaptureRule
::
new
(
location
,
id
,
name
,
content_name
,
retokenizeCapturedWithRuleId
);
helper
.register_rule
(
Box
::
from
(
rule
));
return
helper
.get_rule
(
id
);
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录