Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
Phodal
scie
提交
168a02f2
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 搜索 >>
未验证
提交
168a02f2
编写于
9月 10, 2020
作者:
P
Phodal Huang
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
refactor: delete scie-onig
上级
d63f2a0a
变更
11
隐藏空白更改
内联
并排
Showing
11 changed file
with
26 addition
and
48 deletion
+26
-48
scie-grammar/src/grammar/grammar.rs
scie-grammar/src/grammar/grammar.rs
+1
-1
scie-grammar/src/grammar/mod.rs
scie-grammar/src/grammar/mod.rs
+1
-1
scie-grammar/src/rule/abstract_rule.rs
scie-grammar/src/rule/abstract_rule.rs
+1
-1
scie-grammar/src/rule/compiled_rule.rs
scie-grammar/src/rule/compiled_rule.rs
+3
-3
scie-grammar/src/support/regex_source.rs
scie-grammar/src/support/regex_source.rs
+1
-1
scie-onig/Cargo.toml
scie-onig/Cargo.toml
+0
-10
scie-onig/src/lib.rs
scie-onig/src/lib.rs
+0
-2
scie-onig/src/scie_scanner.rs
scie-onig/src/scie_scanner.rs
+0
-11
scie-scanner/src/scanner/mod.rs
scie-scanner/src/scanner/mod.rs
+2
-1
scie-scanner/src/scanner/scie_onig.rs
scie-scanner/src/scanner/scie_onig.rs
+1
-1
scie-scanner/src/scanner/scie_scanner.rs
scie-scanner/src/scanner/scie_scanner.rs
+16
-16
未找到文件。
scie-grammar/src/grammar/grammar.rs
浏览文件 @
168a02f2
...
@@ -10,7 +10,7 @@ use crate::rule::{
...
@@ -10,7 +10,7 @@ use crate::rule::{
AbstractRule
,
BeginWhileRule
,
EmptyRule
,
IGrammarRegistry
,
IRuleFactoryHelper
,
IRuleRegistry
,
AbstractRule
,
BeginWhileRule
,
EmptyRule
,
IGrammarRegistry
,
IRuleFactoryHelper
,
IRuleRegistry
,
};
};
use
core
::
cmp
;
use
core
::
cmp
;
use
scie_scanner
::
scanner
::
scanner
::
IOnigCaptureIndex
;
use
scie_scanner
::
scanner
::
sc
ie_sc
anner
::
IOnigCaptureIndex
;
use
std
::
fs
::
File
;
use
std
::
fs
::
File
;
use
std
::
io
::
Read
;
use
std
::
io
::
Read
;
use
std
::
path
::
Path
;
use
std
::
path
::
Path
;
...
...
scie-grammar/src/grammar/mod.rs
浏览文件 @
168a02f2
...
@@ -11,7 +11,7 @@ pub use self::grammar::Grammar;
...
@@ -11,7 +11,7 @@ pub use self::grammar::Grammar;
pub
use
self
::
scope_list_element
::
ScopeListElement
;
pub
use
self
::
scope_list_element
::
ScopeListElement
;
pub
use
self
::
scope_metadata
::
ScopeMetadata
;
pub
use
self
::
scope_metadata
::
ScopeMetadata
;
pub
use
self
::
stack_element
::
StackElement
;
pub
use
self
::
stack_element
::
StackElement
;
use
scie_scanner
::
scanner
::
scanner
::
IOnigCaptureIndex
;
use
scie_scanner
::
scanner
::
sc
ie_sc
anner
::
IOnigCaptureIndex
;
#[derive(Debug,
Clone,
Serialize)]
#[derive(Debug,
Clone,
Serialize)]
pub
struct
MatchRuleResult
{
pub
struct
MatchRuleResult
{
...
...
scie-grammar/src/rule/abstract_rule.rs
浏览文件 @
168a02f2
...
@@ -6,7 +6,7 @@ use crate::rule::{
...
@@ -6,7 +6,7 @@ use crate::rule::{
use
crate
::
support
::
regex_source
::
RegexSource
;
use
crate
::
support
::
regex_source
::
RegexSource
;
use
core
::
fmt
;
use
core
::
fmt
;
use
dyn_clone
::{
clone_trait_object
,
DynClone
};
use
dyn_clone
::{
clone_trait_object
,
DynClone
};
use
scie_scanner
::
scanner
::
scanner
::
IOnigCaptureIndex
;
use
scie_scanner
::
scanner
::
sc
ie_sc
anner
::
IOnigCaptureIndex
;
pub
enum
RuleEnum
{
pub
enum
RuleEnum
{
BeginEndRule
(
BeginEndRule
),
BeginEndRule
(
BeginEndRule
),
...
...
scie-grammar/src/rule/compiled_rule.rs
浏览文件 @
168a02f2
use
scie_scanner
::
scanner
::
sc
anner
::
Scanner
;
use
scie_scanner
::
scanner
::
sc
ie_scanner
::
Scie
Scanner
;
#[derive(Clone,
Debug,
Serialize)]
#[derive(Clone,
Debug,
Serialize)]
pub
struct
CompiledRule
{
pub
struct
CompiledRule
{
pub
debug_reg_exps
:
Vec
<
String
>
,
pub
debug_reg_exps
:
Vec
<
String
>
,
pub
rules
:
Vec
<
i32
>
,
pub
rules
:
Vec
<
i32
>
,
pub
scanner
:
Box
<
Scanner
>
,
pub
scanner
:
Box
<
Sc
ieSc
anner
>
,
}
}
impl
CompiledRule
{
impl
CompiledRule
{
pub
fn
new
(
debug_reg_exps
:
Vec
<
String
>
,
rules
:
Vec
<
i32
>
)
->
Self
{
pub
fn
new
(
debug_reg_exps
:
Vec
<
String
>
,
rules
:
Vec
<
i32
>
)
->
Self
{
let
scanner
=
Scanner
::
new
(
debug_reg_exps
.clone
());
let
scanner
=
Sc
ieSc
anner
::
new
(
debug_reg_exps
.clone
());
CompiledRule
{
CompiledRule
{
debug_reg_exps
,
debug_reg_exps
,
rules
,
rules
,
...
...
scie-grammar/src/support/regex_source.rs
浏览文件 @
168a02f2
use
regex
::
Regex
;
use
regex
::
Regex
;
use
scie_scanner
::
scanner
::
scanner
::
IOnigCaptureIndex
;
use
scie_scanner
::
scanner
::
sc
ie_sc
anner
::
IOnigCaptureIndex
;
pub
struct
RegexSource
{}
pub
struct
RegexSource
{}
...
...
scie-onig/Cargo.toml
已删除
100644 → 0
浏览文件 @
d63f2a0a
[package]
name
=
"scie_onig"
version
=
"0.1.0"
authors
=
[
"Phodal Huang <h@phodal.com>"
]
edition
=
"2018"
# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html
[dependencies]
onig_sys
=
"69.5.1"
scie-onig/src/lib.rs
已删除
100644 → 0
浏览文件 @
d63f2a0a
pub
mod
scie_onig
;
pub
mod
scie_scanner
;
\ No newline at end of file
scie-onig/src/scie_scanner.rs
已删除
100644 → 0
浏览文件 @
d63f2a0a
pub
struct
ScieScanner
{}
impl
ScieScanner
{
pub
fn
new
()
->
Self
{
ScieScanner
{}
}
pub
fn
find_next_match_sync
(
&
self
,
str
:
String
,
start_position
:
i32
)
{
}
}
scie-scanner/src/scanner/mod.rs
浏览文件 @
168a02f2
pub
mod
scanner
;
pub
mod
scie_scanner
;
pub
mod
scie_onig
;
scie-
onig/src
/scie_onig.rs
→
scie-
scanner/src/scanner
/scie_onig.rs
浏览文件 @
168a02f2
use
crate
::
scie_scanner
::
ScieScanner
;
use
crate
::
scie_scanner
::
ScieScanner
;
use
crate
::
scanner
::
scie_scanner
::
ScieScanner
;
pub
struct
ScieOnig
{
pub
struct
ScieOnig
{
...
@@ -7,7 +8,6 @@ pub struct ScieOnig {
...
@@ -7,7 +8,6 @@ pub struct ScieOnig {
impl
ScieOnig
{
impl
ScieOnig
{
pub
fn
create_onig_scanner
(
sources
:
Vec
<
String
>
)
->
ScieScanner
{
pub
fn
create_onig_scanner
(
sources
:
Vec
<
String
>
)
->
ScieScanner
{
ScieScanner
::
new
()
}
}
}
}
scie-scanner/src/scanner/scanner.rs
→
scie-scanner/src/scanner/sc
ie_sc
anner.rs
浏览文件 @
168a02f2
...
@@ -15,14 +15,14 @@ pub struct IOnigMatch {
...
@@ -15,14 +15,14 @@ pub struct IOnigMatch {
}
}
#[derive(Debug,
Clone,
Serialize)]
#[derive(Debug,
Clone,
Serialize)]
pub
struct
Scanner
{
pub
struct
Sc
ieSc
anner
{
pub
index
:
usize
,
pub
index
:
usize
,
pub
patterns
:
Vec
<
String
>
,
pub
patterns
:
Vec
<
String
>
,
}
}
impl
Scanner
{
impl
Sc
ieSc
anner
{
pub
fn
new
(
patterns
:
Vec
<
String
>
)
->
Self
{
pub
fn
new
(
patterns
:
Vec
<
String
>
)
->
Self
{
Scanner
{
index
:
0
,
patterns
}
Sc
ieSc
anner
{
index
:
0
,
patterns
}
}
}
pub
fn
dispose
(
&
mut
self
)
{
pub
fn
dispose
(
&
mut
self
)
{
...
@@ -137,12 +137,12 @@ pub fn str_vec_to_string<I, T>(iter: I) -> Vec<String>
...
@@ -137,12 +137,12 @@ pub fn str_vec_to_string<I, T>(iter: I) -> Vec<String>
#[cfg(test)]
#[cfg(test)]
mod
tests
{
mod
tests
{
use
crate
::
scanner
::
sc
anner
::{
str_vec_to_string
,
Scanner
};
use
crate
::
scanner
::
sc
ie_scanner
::{
str_vec_to_string
,
Scie
Scanner
};
#[test]
#[test]
fn
should_handle_simple_regex
()
{
fn
should_handle_simple_regex
()
{
let
regex
=
vec!
[
String
::
from
(
"ell"
),
String
::
from
(
"wo"
)];
let
regex
=
vec!
[
String
::
from
(
"ell"
),
String
::
from
(
"wo"
)];
let
mut
scanner
=
Scanner
::
new
(
regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
regex
);
let
s
=
String
::
from
(
"Hello world!"
);
let
s
=
String
::
from
(
"Hello world!"
);
let
result
=
scanner
.find_next_match_sync
(
s
.clone
(),
0
)
.unwrap
();
let
result
=
scanner
.find_next_match_sync
(
s
.clone
(),
0
)
.unwrap
();
assert_eq!
(
result
.index
,
0
);
assert_eq!
(
result
.index
,
0
);
...
@@ -158,7 +158,7 @@ mod tests {
...
@@ -158,7 +158,7 @@ mod tests {
#[test]
#[test]
fn
should_handle_simple2
()
{
fn
should_handle_simple2
()
{
let
regex
=
vec!
[
String
::
from
(
"a"
),
String
::
from
(
"b"
),
String
::
from
(
"c"
)];
let
regex
=
vec!
[
String
::
from
(
"a"
),
String
::
from
(
"b"
),
String
::
from
(
"c"
)];
let
mut
scanner
=
Scanner
::
new
(
regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
regex
);
if
let
None
=
scanner
.find_next_match_sync
(
String
::
from
(
"x"
),
0
)
{
if
let
None
=
scanner
.find_next_match_sync
(
String
::
from
(
"x"
),
0
)
{
assert_eq!
(
true
,
true
);
assert_eq!
(
true
,
true
);
...
@@ -206,7 +206,7 @@ mod tests {
...
@@ -206,7 +206,7 @@ mod tests {
#[test]
#[test]
fn
should_handle_unicode1
()
{
fn
should_handle_unicode1
()
{
let
regex
=
vec!
[
String
::
from
(
"1"
),
String
::
from
(
"2"
)];
let
regex
=
vec!
[
String
::
from
(
"1"
),
String
::
from
(
"2"
)];
let
mut
scanner
=
Scanner
::
new
(
regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
regex
);
let
result
=
scanner
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"ab…cde21"
),
5
)
.find_next_match_sync
(
String
::
from
(
"ab…cde21"
),
5
)
...
@@ -221,7 +221,7 @@ mod tests {
...
@@ -221,7 +221,7 @@ mod tests {
#[test]
#[test]
fn
should_handle_unicode2
()
{
fn
should_handle_unicode2
()
{
let
mut
scanner2
=
Scanner
::
new
(
vec!
[
String
::
from
(
"
\"
"
)]);
let
mut
scanner2
=
Sc
ieSc
anner
::
new
(
vec!
[
String
::
from
(
"
\"
"
)]);
let
result2
=
scanner2
let
result2
=
scanner2
.find_next_match_sync
(
String
::
from
(
"{
\"
…
\"
: 1}"
),
1
)
.find_next_match_sync
(
String
::
from
(
"{
\"
…
\"
: 1}"
),
1
)
.unwrap
();
.unwrap
();
...
@@ -236,7 +236,7 @@ mod tests {
...
@@ -236,7 +236,7 @@ mod tests {
#[test]
#[test]
fn
should_handle_unicode3
()
{
fn
should_handle_unicode3
()
{
let
regex
=
vec!
[
String
::
from
(
"Y"
),
String
::
from
(
"X"
)];
let
regex
=
vec!
[
String
::
from
(
"Y"
),
String
::
from
(
"X"
)];
let
mut
scanner
=
Scanner
::
new
(
regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
regex
);
let
result
=
scanner
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"a💻bYX"
),
0
)
.find_next_match_sync
(
String
::
from
(
"a💻bYX"
),
0
)
.unwrap
();
.unwrap
();
...
@@ -290,7 +290,7 @@ mod tests {
...
@@ -290,7 +290,7 @@ mod tests {
#[test]
#[test]
fn
should_out_of_bounds
()
{
fn
should_out_of_bounds
()
{
let
mut
scanner
=
Scanner
::
new
(
vec!
[
String
::
from
(
"X"
)]);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
vec!
[
String
::
from
(
"X"
)]);
let
result
=
scanner
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"X💻X"
),
-
10000
)
.find_next_match_sync
(
String
::
from
(
"X💻X"
),
-
10000
)
.unwrap
();
.unwrap
();
...
@@ -307,7 +307,7 @@ mod tests {
...
@@ -307,7 +307,7 @@ mod tests {
#[test]
#[test]
fn
should_handle_regex_g
()
{
fn
should_handle_regex_g
()
{
let
mut
scanner
=
Scanner
::
new
(
vec!
[
String
::
from
(
"
\\
G-and"
)]);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
vec!
[
String
::
from
(
"
\\
G-and"
)]);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"first-and-second"
),
0
);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"first-and-second"
),
0
);
assert_eq!
(
format!
(
"{:?}"
,
result
),
"None"
);
assert_eq!
(
format!
(
"{:?}"
,
result
),
"None"
);
...
@@ -339,7 +339,7 @@ mod tests {
...
@@ -339,7 +339,7 @@ mod tests {
];
];
let
_
rules
=
vec!
[
2
,
7
,
28
,
45
,
48
,
51
,
61
,
64
,
66
,
69
,
77
];
let
_
rules
=
vec!
[
2
,
7
,
28
,
45
,
48
,
51
,
61
,
64
,
66
,
69
,
77
];
let
debug_regex
=
str_vec_to_string
(
origin
);
let
debug_regex
=
str_vec_to_string
(
origin
);
let
mut
scanner
=
Scanner
::
new
(
debug_regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
debug_regex
);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"%.o: %.c $(DEPS)"
),
0
);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"%.o: %.c $(DEPS)"
),
0
);
assert_eq!
(
3
,
result
.unwrap
()
.capture_indices
.len
());
assert_eq!
(
3
,
result
.unwrap
()
.capture_indices
.len
());
}
}
...
@@ -349,7 +349,7 @@ mod tests {
...
@@ -349,7 +349,7 @@ mod tests {
let
origin
=
vec!
[
"(?=
\\
s|$)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
,
"%"
];
let
origin
=
vec!
[
"(?=
\\
s|$)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
,
"%"
];
let
_
rules
=
vec!
[
-
1
,
12
,
14
,
33
];
let
_
rules
=
vec!
[
-
1
,
12
,
14
,
33
];
let
debug_regex
=
str_vec_to_string
(
origin
);
let
debug_regex
=
str_vec_to_string
(
origin
);
let
mut
scanner
=
Scanner
::
new
(
debug_regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
debug_regex
);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"%.o"
),
0
);
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"%.o"
),
0
);
let
onig_match
=
result
.unwrap
();
let
onig_match
=
result
.unwrap
();
assert_eq!
(
3
,
onig_match
.index
);
assert_eq!
(
3
,
onig_match
.index
);
...
@@ -362,7 +362,7 @@ mod tests {
...
@@ -362,7 +362,7 @@ mod tests {
let
origin
=
vec!
[
"^(?!
\\
t)"
,
"
\\
G"
,
"^
\\
t"
];
let
origin
=
vec!
[
"^(?!
\\
t)"
,
"
\\
G"
,
"^
\\
t"
];
let
_
rules
=
vec!
[
-
1
,
36
,
39
];
let
_
rules
=
vec!
[
-
1
,
36
,
39
];
let
debug_regex
=
str_vec_to_string
(
origin
);
let
debug_regex
=
str_vec_to_string
(
origin
);
let
mut
scanner
=
Scanner
::
new
(
debug_regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
debug_regex
);
let
result
=
scanner
.find_next_match_sync
(
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
String
::
from
(
"%.o: %.c $(DEPS)
"%.o: %.c $(DEPS)
...
@@ -381,7 +381,7 @@ mod tests {
...
@@ -381,7 +381,7 @@ mod tests {
let
origin
=
vec!
[
"^"
,
"
\\\n
"
,
"%|
\\
*"
,
"(^[
\t
]+)?(?=#)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
];
let
origin
=
vec!
[
"^"
,
"
\\\n
"
,
"%|
\\
*"
,
"(^[
\t
]+)?(?=#)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
];
let
_
rules
=
vec!
[
-
1
,
37
,
38
,
2
,
12
,
14
];
let
_
rules
=
vec!
[
-
1
,
37
,
38
,
2
,
12
,
14
];
let
debug_regex
=
str_vec_to_string
(
origin
);
let
debug_regex
=
str_vec_to_string
(
origin
);
let
mut
scanner
=
Scanner
::
new
(
debug_regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
debug_regex
);
let
result
=
scanner
.find_next_match_sync
(
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
String
::
from
(
"%.o: %.c $(DEPS)
"%.o: %.c $(DEPS)
...
@@ -400,7 +400,7 @@ mod tests {
...
@@ -400,7 +400,7 @@ mod tests {
let
origin
=
vec!
[
"^"
,
"
\\\n
"
,
"%|
\\
*"
,
"(^[
\t
]+)?(?=#)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
];
let
origin
=
vec!
[
"^"
,
"
\\\n
"
,
"%|
\\
*"
,
"(^[
\t
]+)?(?=#)"
,
"(
\\
$?
\\
$)[@%<?^+*]"
,
"
\\
$?
\\
$
\\
("
];
let
_
rules
=
vec!
[
-
1
,
37
,
38
,
2
,
12
,
14
];
let
_
rules
=
vec!
[
-
1
,
37
,
38
,
2
,
12
,
14
];
let
debug_regex
=
str_vec_to_string
(
origin
);
let
debug_regex
=
str_vec_to_string
(
origin
);
let
mut
scanner
=
Scanner
::
new
(
debug_regex
);
let
mut
scanner
=
Sc
ieSc
anner
::
new
(
debug_regex
);
let
result
=
scanner
.find_next_match_sync
(
let
result
=
scanner
.find_next_match_sync
(
String
::
from
(
"%.o: %.c $(DEPS)"
),
String
::
from
(
"%.o: %.c $(DEPS)"
),
16
,
16
,
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录