File tree Expand file tree Collapse file tree 1 file changed +42
-0
lines changed
patterns/interpreter/conceptual Expand file tree Collapse file tree 1 file changed +42
-0
lines changed Original file line number Diff line number Diff line change
1
+ # Interpreter Pattern
2
+ In computer programming, the interpreter pattern is a design pattern that specifies how to evaluate
3
+ sentences in a language.
4
+
5
+ ## Diagram:
6
+ ![ Interpreter Diagram] ( https://user-images.githubusercontent.com/8049534/176169636-4c8eb3ba-d5e8-4ecb-81a8-96f1a30f6339.png )
7
+
8
+ ## Client code:
9
+ ``` dart
10
+ void main() {
11
+ final context = Context();
12
+ final variable1 = BoolVariable('var1');
13
+ final variable2 = BoolVariable('var2');
14
+ final variable3 = BoolVariable('var3');
15
+ final variable4 = BoolVariable('var4');
16
+
17
+ context.assign(variable1, true);
18
+ context.assign(variable2, false);
19
+ context.assign(variable3, true);
20
+ context.assign(variable4, false);
21
+
22
+ final expression = And(
23
+ variable1, // true
24
+ Xor(
25
+ variable2, // false
26
+ Or(
27
+ variable3, // true
28
+ variable4, // false
29
+ ),
30
+ ),
31
+ );
32
+
33
+ print(expression.evaluate(context));
34
+ print(expression.toDebugString(context));
35
+ }
36
+ ```
37
+
38
+ ### Output:
39
+ ```
40
+ var4(false) Or var3(true) Xor var2(false) And var1(true)
41
+ result: true
42
+ ```
You can’t perform that action at this time.
0 commit comments