Data update
This commit is contained in:
parent
ed705008a8
commit
0df55f9f24
2196 changed files with 32999 additions and 3075 deletions
|
|
@ -0,0 +1,57 @@
|
|||
$ENTRY Go {
|
||||
, <Arg 1>: e.File
|
||||
, <Arg 2>: e.Input
|
||||
, <ReadLines 1 e.File>: e.Lines
|
||||
, <Each ParseRule e.Lines>: e.Rules
|
||||
, <Apply (e.Rules) e.Input>: e.Result
|
||||
= <Prout e.Result>;
|
||||
};
|
||||
|
||||
Each {
|
||||
s.F = ;
|
||||
s.F (e.I) e.R = <Mu s.F e.I> <Each s.F e.R>;
|
||||
};
|
||||
|
||||
ReadLines {
|
||||
s.Chan e.File = <Open 'r' s.Chan e.File>
|
||||
<ReadLines (s.Chan)>;
|
||||
(s.Chan), <Get s.Chan>: {
|
||||
0 = <Close s.Chan>;
|
||||
e.Line = (e.Line) <ReadLines (s.Chan)>;
|
||||
};
|
||||
};
|
||||
|
||||
ParseRule {
|
||||
= (Empty);
|
||||
'#' e.X = (Empty);
|
||||
e.Pat ' -> ' e.Rep,
|
||||
<Trim e.Pat>: e.TrPat,
|
||||
<Trim e.Rep>: e.TrRep,
|
||||
e.TrRep: {
|
||||
'.' e.R = (Term (e.Pat) (e.R));
|
||||
e.R = (Nonterm (e.Pat) (e.R));
|
||||
};
|
||||
};
|
||||
|
||||
ApplyRule {
|
||||
(s.Type (e.Pat) (e.Rep)) e.Subj,
|
||||
e.Subj: e.X e.Pat e.Y = s.Type e.X e.Rep e.Y;
|
||||
t.Rule e.Subj = NoMatch e.Subj;
|
||||
};
|
||||
|
||||
Apply {
|
||||
(e.Rules) () e.Subj = e.Subj;
|
||||
(e.Rules) (t.Rule e.Rest) e.Subj,
|
||||
<ApplyRule t.Rule e.Subj>: {
|
||||
NoMatch e.Subj = <Apply (e.Rules) (e.Rest) e.Subj>;
|
||||
Term e.Res = e.Res;
|
||||
Nonterm e.Res = <Apply (e.Rules) e.Res>;
|
||||
};
|
||||
(e.Rules) e.Subj = <Apply (e.Rules) (e.Rules) e.Subj>;
|
||||
};
|
||||
|
||||
Trim {
|
||||
' ' e.X = <Trim e.X>;
|
||||
e.X ' ' = <Trim e.X>;
|
||||
e.X = e.X;
|
||||
};
|
||||
Loading…
Add table
Add a link
Reference in a new issue