feat: make series works

上级 9abfeb7f
......@@ -11,3 +11,4 @@ Cargo.lock
**/*.rs.bk
.idea
default.profraw
demo.json
此差异已折叠。
......@@ -120,9 +120,8 @@ impl Grammar {
RuleFactory::get_compiled_rule_id(based.clone(), self, repository);
}
// let j = serde_json::to_string(&self.rule_id2desc).unwrap();
// println!("{:?}", j);
// println!("{}", serde_json::to_string_pretty(&j).unwrap());
let j = serde_json::to_string(&self.rule_id2desc).unwrap();
println!("{}", serde_json::to_string_pretty(&j).unwrap());
let mut is_first_line: bool = false;
if let None = prev_state {
......
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct RegExpSourceList {}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct RegExpSource {
pub source: String,
pub rule_id: i32,
......
......@@ -2,7 +2,7 @@ use crate::grammar::grammar::Grammar;
use crate::inter::{IRawCaptures, IRawRepository, IRawRule, ILocation};
use crate::rule::{BeginEndRule, BeginWhileRule, CaptureRule, IRuleRegistry, IncludeOnlyRule, MatchRule, AbstractRule};
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct ICompilePatternsResult {
pub patterns: Vec<i32>,
pub has_missing_patterns: bool,
......
......@@ -7,7 +7,7 @@ use core::fmt;
use dyn_clone::{clone_trait_object, DynClone};
use serde::{Serialize, Serializer};
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct Rule {
pub location: Option<ILocation>,
pub id: i32,
......@@ -31,7 +31,7 @@ impl Rule {
}
}
pub trait AbstractRule: DynClone {
pub trait AbstractRule: DynClone + erased_serde::Serialize {
fn type_of(&self) -> String;
}
......@@ -45,7 +45,7 @@ impl fmt::Debug for dyn AbstractRule {
clone_trait_object!(AbstractRule);
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct IncludeOnlyRule {
pub rule: Rule,
pub captures: ICompilePatternsResult,
......@@ -77,7 +77,7 @@ impl AbstractRule for IncludeOnlyRule {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct BeginWhileRule {
pub rule: Rule,
}
......@@ -118,7 +118,7 @@ impl AbstractRule for BeginWhileRule {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct MatchRule {
pub rule: Rule,
pub _match: RegExpSource,
......@@ -152,7 +152,7 @@ impl AbstractRule for MatchRule {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct BeginEndRule {
pub rule: Rule,
pub _begin: RegExpSource,
......@@ -203,7 +203,7 @@ impl AbstractRule for BeginEndRule {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct CaptureRule {
pub rule: Rule,
}
......@@ -227,7 +227,7 @@ impl AbstractRule for CaptureRule {
}
}
#[derive(Clone, Debug)]
#[derive(Clone, Debug, Serialize)]
pub struct NoneRule {}
impl AbstractRule for NoneRule {
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册