Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
scie
提交
a6e5e7a2
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 搜索 >>
未验证
提交
a6e5e7a2
编写于
8月 23, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
feat: add init map
上级
c761f25a
变更
2
隐藏空白更改
内联
并排
Showing
2 changed file
with
28 addition
and
5 deletion
+28
-5
scie-grammar/src/grammar/grammar/mod.rs
scie-grammar/src/grammar/grammar/mod.rs
+25
-2
scie-grammar/src/inter/mod.rs
scie-grammar/src/inter/mod.rs
+3
-3
未找到文件。
scie-grammar/src/grammar/grammar/mod.rs
浏览文件 @
a6e5e7a2
use
crate
::
inter
::{
IRawGrammar
,
IRawRepository
,
ILocation
};
use
crate
::
inter
::{
IRawGrammar
,
IRawRepository
,
ILocation
,
IRawRule
,
IRawRepositoryMap
};
use
crate
::
rule
::{
RuleFactory
,
IRuleFactoryHelper
,
IGrammarRegistry
,
IRuleRegistry
,
Rule
};
use
onig
::
*
;
...
...
@@ -41,10 +41,33 @@ pub struct Grammar {
grammar
:
IRawGrammar
,
}
pub
fn
init_grammar
(
grammar
:
IRawGrammar
,
base
:
Option
<
IRawRule
>
)
->
IRawGrammar
{
let
mut
_
grammar
=
grammar
.clone
();
_
grammar
.repository
=
grammar
.repository
.clone
();
let
mut
new_based
:
IRawRule
=
IRawRule
::
new
();
new_based
.location
=
grammar
.repository
.unwrap
()
.clone
()
.location
;
new_based
.patterns
=
Some
(
grammar
.patterns
.clone
());
new_based
.name
=
grammar
.name
;
let
mut
repository_map
=
IRawRepositoryMap
::
new
();
repository_map
.base_s
=
Some
(
new_based
.clone
());
repository_map
.self_s
=
Some
(
new_based
.clone
());
_
grammar
.repository
=
Some
(
IRawRepository
{
map
:
Box
::
new
(
repository_map
.clone
()),
location
:
None
});
_
grammar
}
impl
Grammar
{
pub
fn
new
(
grammar
:
IRawGrammar
)
->
Grammar
{
let
_
grammar
=
init_grammar
(
grammar
.clone
(),
None
);
Grammar
{
grammar
,
grammar
:
_
grammar
,
root_id
:
-
1
,
}
}
...
...
scie-grammar/src/inter/mod.rs
浏览文件 @
a6e5e7a2
...
...
@@ -41,9 +41,9 @@ pub struct IRawCapturesMap {
#[derive(Serialize,
Deserialize,
PartialEq,
Debug,
Clone)]
pub
struct
IRawRepositoryMap
{
#[serde(flatten)]
name_map
:
HashMap
<
String
,
IRawRule
>
,
self_s
:
Option
<
IRawRule
>
,
base_s
:
Option
<
IRawRule
>
,
pub
name_map
:
HashMap
<
String
,
IRawRule
>
,
pub
self_s
:
Option
<
IRawRule
>
,
pub
base_s
:
Option
<
IRawRule
>
,
}
impl
IRawRepositoryMap
{
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录