Skip to content

Commit eb95362

Browse files
committed
Add README.
1 parent 6190cbb commit eb95362

File tree

1 file changed

+42
-0
lines changed

1 file changed

+42
-0
lines changed
Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,42 @@
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+
```

0 commit comments

Comments
 (0)