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