Skip to content

Commit

Permalink
Рефакторинг: устранение дублирования кода (#15)
Browse files Browse the repository at this point in the history
  • Loading branch information
Mazdaywik committed Jul 10, 2018
1 parent b6be467 commit c2dcf35
Showing 1 changed file with 36 additions and 49 deletions.
85 changes: 36 additions & 49 deletions src/compiler/HighLevelRASL-ConjointFunc-Ref.ref
Original file line number Diff line number Diff line change
Expand Up @@ -79,34 +79,45 @@ GenerateCommandsOfGroups {
>;

ForAllSentences (e.NewGCG-Subst) e.SentencesWithSubst^
= <GenerateGroupWithGCGSubst
s.FnGenSubst s.FnGenResult
(e.MarkedPattern) (e.SentencesWithSubst) s.ContextSize s.BaseNum
e.NewGCG-Subst
>;
}
}

= <EnumerateVars-Subst s.BaseNum e.NewGCG-Subst>
: s.BaseNum^ e.NewGCG-Subst^
GenerateGroupWithGCGSubst {
s.FnGenSubst s.FnGenResult
(e.MarkedPattern) (e.SentencesWithSubst) s.ContextSize s.BaseNum
e.NewGCG-Subst

= <ComposeVars (e.MarkedPattern) (e.NewGCG-Subst)> : e.SubstsAndJunks
= <EnumerateVars-Subst s.BaseNum e.NewGCG-Subst>
: s.BaseNum^ e.NewGCG-Subst^

= <MakeSavers s.ContextSize e.SubstsAndJunks>
: s.ContextSize^ (e.CmdSaves) e.SubstsAndJunks^
= <ComposeVars (e.MarkedPattern) (e.NewGCG-Subst)> : e.SubstsAndJunks

= <s.FnGenSubst
s.ContextSize e.SubstsAndJunks
(/* no known variables */) (e.CmdSaves)
>
: s.ContextSize^ (e.Vars) (e.MarkedPattern^) e.GCG-Commands
= <MakeSavers s.ContextSize e.SubstsAndJunks>
: s.ContextSize^ (e.CmdSaves) e.SubstsAndJunks^

= <NarrowSentenceSubstitutions (e.NewGCG-Subst) e.SentencesWithSubst>
: e.SentencesWithSubst^
= <s.FnGenSubst
s.ContextSize e.SubstsAndJunks
(/* no known variables */) (e.CmdSaves)
>
: s.ContextSize^ (e.Vars) (e.MarkedPattern^) e.GCG-Commands

= <GenerateCommandsOfGroups
s.FnGenSubst s.FnGenResult
(e.MarkedPattern)
(e.SentencesWithSubst)
s.ContextSize s.BaseNum
>
: s.ContextSize^ e.Commands
= <NarrowSentenceSubstitutions (e.NewGCG-Subst) e.SentencesWithSubst>
: e.SentencesWithSubst^

= s.ContextSize e.GCG-Commands e.Commands;
}
= <GenerateCommandsOfGroups
s.FnGenSubst s.FnGenResult
(e.MarkedPattern)
(e.SentencesWithSubst)
s.ContextSize s.BaseNum
>
: s.ContextSize^ e.Commands

= s.ContextSize e.GCG-Commands e.Commands;
}

GenerateOneSentence {
Expand Down Expand Up @@ -176,35 +187,11 @@ GenerateCommands {
s.FnGenSubst s.FnGenResult (e.MarkedPattern) (e.SentencesWithSubst)
(e.NewGCG-Subst)
s.ContextSize s.BaseNum

/* Вычисляем ГСО подстановок и подстановки в e.MarkedPattern */
= <EnumerateVars-Subst s.BaseNum e.NewGCG-Subst>
: s.BaseNum^ e.NewGCG-Subst^

/* Находим новый e.MarkedPattern */
= <ComposeVars (e.MarkedPattern) (e.NewGCG-Subst)> : e.SubstsAndJunks

= <MakeSavers s.ContextSize e.SubstsAndJunks>
: s.ContextSize^ (e.CmdSaves) e.SubstsAndJunks^

= <s.FnGenSubst
s.ContextSize e.SubstsAndJunks (/* no new vars */) (e.CmdSaves)
>
: s.ContextSize^ (e.Vars^) (e.MarkedPattern^) e.PatternCommands

/* Строим подстановки, переводящие новое ГСО в образец */
= <NarrowSentenceSubstitutions (e.NewGCG-Subst) e.SentencesWithSubst>
: e.SentencesWithSubst^

/* Ищем разбиение на группы и формируем команды для новых предложений */
= <GenerateCommandsOfGroups
= <GenerateGroupWithGCGSubst
s.FnGenSubst s.FnGenResult
(e.MarkedPattern) (e.SentencesWithSubst)
s.ContextSize s.BaseNum
>
: s.MaxMemory e.ResultCommands

= s.MaxMemory e.PatternCommands e.ResultCommands;
(e.MarkedPattern) (e.SentencesWithSubst) s.ContextSize s.BaseNum
e.NewGCG-Subst
>;
}


Expand Down

0 comments on commit c2dcf35

Please sign in to comment.