From af0fccfef33593118f9525087b0b612d91f2614c Mon Sep 17 00:00:00 2001 From: Roman Martinuk Date: Sun, 14 Mar 2021 18:40:48 +0300 Subject: [PATCH 1/6] add pattern Interpreter --- Behavioral/Interpreter/AbstractExp.php | 8 +++ Behavioral/Interpreter/AndExp.php | 20 ++++++ Behavioral/Interpreter/Context.php | 24 +++++++ Behavioral/Interpreter/OrExp.php | 20 ++++++ .../Interpreter/Tests/InterpreterTest.php | 63 ++++++++++++++++++ Behavioral/Interpreter/VariableExp.php | 23 +++++++ Behavioral/Interpreter/uml/uml.png | Bin 0 -> 22922 bytes 7 files changed, 158 insertions(+) create mode 100644 Behavioral/Interpreter/AbstractExp.php create mode 100644 Behavioral/Interpreter/AndExp.php create mode 100644 Behavioral/Interpreter/Context.php create mode 100644 Behavioral/Interpreter/OrExp.php create mode 100644 Behavioral/Interpreter/Tests/InterpreterTest.php create mode 100644 Behavioral/Interpreter/VariableExp.php create mode 100644 Behavioral/Interpreter/uml/uml.png diff --git a/Behavioral/Interpreter/AbstractExp.php b/Behavioral/Interpreter/AbstractExp.php new file mode 100644 index 0000000..5e34736 --- /dev/null +++ b/Behavioral/Interpreter/AbstractExp.php @@ -0,0 +1,8 @@ +first = $first; + $this->second = $second; + } + + public function interpret(Context $context): bool + { + return (bool) $this->first->interpret($context) && $this->second->interpret($context); + } +} diff --git a/Behavioral/Interpreter/Context.php b/Behavioral/Interpreter/Context.php new file mode 100644 index 0000000..2a0b2c7 --- /dev/null +++ b/Behavioral/Interpreter/Context.php @@ -0,0 +1,24 @@ +poolVariable)) { + throw new Exception("no exist variable: $name"); + } + + return $this->poolVariable[$name]; + } + + public function assign(VariableExp $variable, bool $val) + { + $this->poolVariable[$variable->getName()] = $val; + } +} diff --git a/Behavioral/Interpreter/OrExp.php b/Behavioral/Interpreter/OrExp.php new file mode 100644 index 0000000..db3ba1b --- /dev/null +++ b/Behavioral/Interpreter/OrExp.php @@ -0,0 +1,20 @@ +first = $first; + $this->second = $second; + } + + public function interpret(Context $context): bool + { + return $this->first->interpret($context) || $this->second->interpret($context); + } +} diff --git a/Behavioral/Interpreter/Tests/InterpreterTest.php b/Behavioral/Interpreter/Tests/InterpreterTest.php new file mode 100644 index 0000000..3b1c07a --- /dev/null +++ b/Behavioral/Interpreter/Tests/InterpreterTest.php @@ -0,0 +1,63 @@ +context = new Context(); + $this->a = new VariableExp('A'); + $this->b = new VariableExp('B'); + $this->c = new VariableExp('C'); + } + + public function testOr() + { + $this->context->assign($this->a, false); + $this->context->assign($this->b, false); + $this->context->assign($this->c, true); + + // A ∨ B + $exp1 = new OrExp($this->a, $this->b); + $result1 = $exp1->interpret($this->context); + + $this->assertFalse($result1, 'A ∨ B must false'); + + // $exp1 ∨ C + $exp2 = new OrExp($exp1, $this->c); + $result2 = $exp2->interpret($this->context); + + $this->assertTrue($result2, '(A ∨ B) ∨ C must true'); + } + + public function testAnd() + { + $this->context->assign($this->a, true); + $this->context->assign($this->b, true); + $this->context->assign($this->c, false); + + // A ∧ B + $exp1 = new AndExp($this->a, $this->b); + $result1 = $exp1->interpret($this->context); + + $this->assertTrue($result1, 'A ∧ B must true'); + + // $exp1 ∧ C + $exp2 = new AndExp($exp1, $this->c); + $result2 = $exp2->interpret($this->context); + + $this->assertFalse($result2, '(A ∧ B) ∧ C must false'); + } +} diff --git a/Behavioral/Interpreter/VariableExp.php b/Behavioral/Interpreter/VariableExp.php new file mode 100644 index 0000000..f7fc871 --- /dev/null +++ b/Behavioral/Interpreter/VariableExp.php @@ -0,0 +1,23 @@ +name = $name; + } + + public function interpret(Context $context): bool + { + return $context->lookUp($this->name); + } + + public function getName(): string + { + return $this->name; + } +} diff --git a/Behavioral/Interpreter/uml/uml.png b/Behavioral/Interpreter/uml/uml.png new file mode 100644 index 0000000000000000000000000000000000000000..09d372bd81a019619581da775a35b0dfcc6fb014 GIT binary patch literal 22922 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 literal 0 HcmV?d00001 From e31dbe5547deb9856551f2aaf18982dbecca9dee Mon Sep 17 00:00:00 2001 From: Roman Martinuk Date: Mon, 15 Mar 2021 12:56:07 +0300 Subject: [PATCH 2/6] upd README --- Behavioral/Interpreter/README.rst | 70 +++++++++++++++++++++++++++++++ Behavioral/README.md | 1 + Behavioral/README.rst | 3 +- README.md | 3 +- 4 files changed, 75 insertions(+), 2 deletions(-) create mode 100644 Behavioral/Interpreter/README.rst diff --git a/Behavioral/Interpreter/README.rst b/Behavioral/Interpreter/README.rst new file mode 100644 index 0000000..9b806ef --- /dev/null +++ b/Behavioral/Interpreter/README.rst @@ -0,0 +1,70 @@ +`Interpreter`__ +============ + +Purpose +------- + +For a given language, it defines the representation of its grammar, +as well as an interpreter for the sentences of that language. + +Examples +-------- + +- An example of a binary logic interpreter, each definition is defined by its own class + +UML Diagram +----------- + +.. image:: uml/uml.png + :alt: Alt Interpreter UML Diagram + :align: center + +Code +---- + +You can also find this code on `GitHub`_ + +AbstractExp.php + +.. literalinclude:: AbstractExp.php + :language: php + :linenos: + +Context.php + +.. literalinclude:: Context.php + :language: php + :linenos: + + +VariableExp.php + +.. literalinclude:: VariableExp.php + :language: php + :linenos: + + +AndExp.php + +.. literalinclude:: AndExp.php + :language: php + :linenos: + + +OrExp.php + +.. literalinclude:: OrExp.php + :language: php + :linenos: + +Test +---- + +Tests/InterpreterTest.php + +.. literalinclude:: Tests/InterpreterTest.php + :language: php + :linenos: + +.. _`GitHub`: https://github.com/domnikl/DesignPatternsPHP/tree/main/Behavioral/Interpreter +.. __: https://en.wikipedia.org/wiki/Interpreter_pattern diff --git a/Behavioral/README.md b/Behavioral/README.md index b98202b..95801e5 100644 --- a/Behavioral/README.md +++ b/Behavioral/README.md @@ -7,6 +7,7 @@ communication. * [ChainOfResponsibilities](ChainOfResponsibilities) [:notebook:](http://en.wikipedia.org/wiki/Chain_of_responsibility_pattern) * [Command](Command) [:notebook:](http://en.wikipedia.org/wiki/Command_pattern) +* [Interpreter](Interpreter) [:notebook:](https://en.wikipedia.org/wiki/Interpreter_pattern) * [Iterator](Iterator) [:notebook:](http://en.wikipedia.org/wiki/Iterator_pattern) * [Mediator](Mediator) [:notebook:](http://en.wikipedia.org/wiki/Mediator_pattern) * [Memento](Memento) [:notebook:](http://en.wikipedia.org/wiki/Memento_pattern) diff --git a/Behavioral/README.rst b/Behavioral/README.rst index 5577f4c..7bde771 100644 --- a/Behavioral/README.rst +++ b/Behavioral/README.rst @@ -11,6 +11,7 @@ carrying out this communication. ChainOfResponsibilities/README Command/README + Interpreter/README Iterator/README Mediator/README Memento/README @@ -22,4 +23,4 @@ carrying out this communication. TemplateMethod/README Visitor/README -.. __: http://en.wikipedia.org/wiki/Behavioral_pattern \ No newline at end of file +.. __: http://en.wikipedia.org/wiki/Behavioral_pattern diff --git a/README.md b/README.md index f780724..6227ee5 100644 --- a/README.md +++ b/README.md @@ -79,6 +79,7 @@ The patterns can be structured in roughly three different categories. Please cli * [ChainOfResponsibilities](Behavioral/ChainOfResponsibilities) [:notebook:](http://en.wikipedia.org/wiki/Chain_of_responsibility_pattern) * [Command](Behavioral/Command) [:notebook:](http://en.wikipedia.org/wiki/Command_pattern) +* [Interpreter](Behavioral/Interpreter) [:notebook:](https://en.wikipedia.org/wiki/Interpreter_pattern) * [Iterator](Behavioral/Iterator) [:notebook:](http://en.wikipedia.org/wiki/Iterator_pattern) * [Mediator](Behavioral/Mediator) [:notebook:](http://en.wikipedia.org/wiki/Mediator_pattern) * [Memento](Behavioral/Memento) [:notebook:](http://en.wikipedia.org/wiki/Memento_pattern) @@ -113,4 +114,4 @@ The patterns can be structured in roughly three different categories. Please cli | es_MX | Spanish-Mexican | [Docs :notebook:](https://designpatternsphp.readthedocs.io/es_MX/latest/README.html) | | tr | Turkish | [Docs :notebook:](https://designpatternsphp.readthedocs.io/tr/latest/README.html) | | bg | Bulgarian | [Docs :notebook:](https://designpatternsphp.readthedocs.io/bg/latest/README.html) | -| fr | French | [Docs :notebook:](https://designpatternsphp.readthedocs.io/fr/latest/README.html) | \ No newline at end of file +| fr | French | [Docs :notebook:](https://designpatternsphp.readthedocs.io/fr/latest/README.html) | From dea71e83b465b49721b39c411bee2f659e1de534 Mon Sep 17 00:00:00 2001 From: Roman Martinuk Date: Tue, 13 Apr 2021 00:29:24 +0300 Subject: [PATCH 3/6] PHP 8 --- Behavioral/Interpreter/AndExp.php | 9 ++------- Behavioral/Interpreter/OrExp.php | 7 +------ Behavioral/Interpreter/VariableExp.php | 5 +---- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/Behavioral/Interpreter/AndExp.php b/Behavioral/Interpreter/AndExp.php index 9715ddb..68b126d 100644 --- a/Behavioral/Interpreter/AndExp.php +++ b/Behavioral/Interpreter/AndExp.php @@ -4,17 +4,12 @@ namespace DesignPatterns\Behavioral\Interpreter; class AndExp extends AbstractExp { - private AbstractExp $first; - private AbstractExp $second; - - public function __construct(AbstractExp $first, AbstractExp $second) + public function __construct(private AbstractExp $first, private AbstractExp $second) { - $this->first = $first; - $this->second = $second; } public function interpret(Context $context): bool { - return (bool) $this->first->interpret($context) && $this->second->interpret($context); + return $this->first->interpret($context) && $this->second->interpret($context); } } diff --git a/Behavioral/Interpreter/OrExp.php b/Behavioral/Interpreter/OrExp.php index db3ba1b..5245424 100644 --- a/Behavioral/Interpreter/OrExp.php +++ b/Behavioral/Interpreter/OrExp.php @@ -4,13 +4,8 @@ namespace DesignPatterns\Behavioral\Interpreter; class OrExp extends AbstractExp { - private AbstractExp $first; - private AbstractExp $second; - - public function __construct(AbstractExp $first, AbstractExp $second) + public function __construct(private AbstractExp $first, private AbstractExp $second) { - $this->first = $first; - $this->second = $second; } public function interpret(Context $context): bool diff --git a/Behavioral/Interpreter/VariableExp.php b/Behavioral/Interpreter/VariableExp.php index f7fc871..202480d 100644 --- a/Behavioral/Interpreter/VariableExp.php +++ b/Behavioral/Interpreter/VariableExp.php @@ -4,11 +4,8 @@ namespace DesignPatterns\Behavioral\Interpreter; class VariableExp extends AbstractExp { - private string $name; - - public function __construct(string $name) + public function __construct(private string $name) { - $this->name = $name; } public function interpret(Context $context): bool From cf331541cd6dd485ddc7f1f25c14cee188173733 Mon Sep 17 00:00:00 2001 From: Roman Martinuk Date: Tue, 13 Apr 2021 00:33:27 +0300 Subject: [PATCH 4/6] upd UML --- Behavioral/Interpreter/uml/uml.png | Bin 22922 -> 43039 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Behavioral/Interpreter/uml/uml.png b/Behavioral/Interpreter/uml/uml.png index 09d372bd81a019619581da775a35b0dfcc6fb014..a9afdab2bbd8f156284d18526d801b77259afa85 100644 GIT binary patch literal 43039 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 G{{I0a7@}AJ literal 22922 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 From 6410890a0631dea0764a0b52e9bb74e11b778f41 Mon Sep 17 00:00:00 2001 From: Roman Martinuk Date: Tue, 13 Apr 2021 00:58:44 +0300 Subject: [PATCH 5/6] add comment in class "NoTerminalExpression/TerminalExpression" and upd README.rst --- Behavioral/Interpreter/AndExp.php | 3 +++ Behavioral/Interpreter/OrExp.php | 3 +++ Behavioral/Interpreter/README.rst | 3 ++- Behavioral/Interpreter/VariableExp.php | 3 +++ 4 files changed, 11 insertions(+), 1 deletion(-) diff --git a/Behavioral/Interpreter/AndExp.php b/Behavioral/Interpreter/AndExp.php index 68b126d..4218507 100644 --- a/Behavioral/Interpreter/AndExp.php +++ b/Behavioral/Interpreter/AndExp.php @@ -2,6 +2,9 @@ namespace DesignPatterns\Behavioral\Interpreter; +/** + * This NoTerminalExpression + */ class AndExp extends AbstractExp { public function __construct(private AbstractExp $first, private AbstractExp $second) diff --git a/Behavioral/Interpreter/OrExp.php b/Behavioral/Interpreter/OrExp.php index 5245424..7ff749e 100644 --- a/Behavioral/Interpreter/OrExp.php +++ b/Behavioral/Interpreter/OrExp.php @@ -2,6 +2,9 @@ namespace DesignPatterns\Behavioral\Interpreter; +/** + * This NoTerminalExpression + */ class OrExp extends AbstractExp { public function __construct(private AbstractExp $first, private AbstractExp $second) diff --git a/Behavioral/Interpreter/README.rst b/Behavioral/Interpreter/README.rst index 9b806ef..cdecafc 100644 --- a/Behavioral/Interpreter/README.rst +++ b/Behavioral/Interpreter/README.rst @@ -4,7 +4,8 @@ Purpose ------- -For a given language, it defines the representation of its grammar, +For a given language, it defines the representation of its grammar as +"No Terminal Expression" and "Terminal Expression", as well as an interpreter for the sentences of that language. Examples diff --git a/Behavioral/Interpreter/VariableExp.php b/Behavioral/Interpreter/VariableExp.php index 202480d..a0f834f 100644 --- a/Behavioral/Interpreter/VariableExp.php +++ b/Behavioral/Interpreter/VariableExp.php @@ -2,6 +2,9 @@ namespace DesignPatterns\Behavioral\Interpreter; +/** + * This TerminalExpression + */ class VariableExp extends AbstractExp { public function __construct(private string $name) From 78a716ae0f4473078734172e3d9eb6241f116dd2 Mon Sep 17 00:00:00 2001 From: Roman Martinuk Date: Thu, 15 Apr 2021 13:40:45 +0300 Subject: [PATCH 6/6] upd uml.png --- Behavioral/Interpreter/uml/uml.png | Bin 43039 -> 43039 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/Behavioral/Interpreter/uml/uml.png b/Behavioral/Interpreter/uml/uml.png index a9afdab2bbd8f156284d18526d801b77259afa85..3d604c69be3e815edc1e9c92de85014132e5b464 100644 GIT binary patch delta 39222 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 CDbFte delta 38350 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