Skip to content

Commit 2db500e

Browse files
committed
Add logical graphs
1 parent 4b6fc1f commit 2db500e

File tree

6 files changed

+54
-11
lines changed

6 files changed

+54
-11
lines changed

Writerside/cfg/static/custom.css

+4
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,8 @@ p + .code-collapse__wrapper,
2525

2626
.starting-page-card {
2727
border-radius: 7px;
28+
}
29+
30+
#mermaid .flowchart-link {
31+
stroke: #59595c6b !important;
2832
}

Writerside/labels.list

+3-3
Original file line numberDiff line numberDiff line change
@@ -43,8 +43,8 @@
4343

4444
<secondary-label id="wip" name="WIP" color="red">Work in progress</secondary-label>
4545
<secondary-label id="beta" name="β" color="tangerine">Beta</secondary-label>
46-
<secondary-label id="tl1.1" name="Available in Parser v1.1" color="strawberry">Available in type-lang/parser 1.1+</secondary-label>
47-
<secondary-label id="tl1.2" name="Available in Parser v1.2" color="strawberry">Available in type-lang/parser 1.2+</secondary-label>
48-
<secondary-label id="tl1.4" name="Available in Parser v1.4" color="strawberry">Available in type-lang/parser 1.4+</secondary-label>
46+
<secondary-label id="tl1.1" name="Parser v1.1" color="strawberry">Available in type-lang/parser 1.1+</secondary-label>
47+
<secondary-label id="tl1.2" name="Parser v1.2" color="strawberry">Available in type-lang/parser 1.2+</secondary-label>
48+
<secondary-label id="tl1.4" name="Parser v1.4" color="strawberry">Available in type-lang/parser 1.4+</secondary-label>
4949
<secondary-label id="r1.1" name="Available in Reader v1.1" color="strawberry">Available in type-lang/reader 1.1+</secondary-label>
5050
</labels>

Writerside/topics/language/callable-types.md

-1
Original file line numberDiff line numberDiff line change
@@ -215,7 +215,6 @@ _before the type_ or _before the parameter name._
215215
216216
## Attributes
217217
218-
<primary-label ref="experimental"/>
219218
<secondary-label ref="tl1.2"/>
220219
221220
Each callable parameter allows you to define list of additional attributes.

Writerside/topics/language/generic-types.md

-1
Original file line numberDiff line numberDiff line change
@@ -154,7 +154,6 @@ In addition to modern list declarations such as `list<int>` or
154154
155155
## Attributes
156156
157-
<primary-label ref="experimental"/>
158157
<secondary-label ref="tl1.1"/>
159158
160159
Each template argument allows you to define list of additional attributes.

Writerside/topics/language/logical-types.md

+47-5
Original file line numberDiff line numberDiff line change
@@ -11,20 +11,35 @@ separate expression is also supported.
1111
Each union type is separated by a pipe character (`|`) and may contain any other
1212
type definition.
1313

14-
> `A` **OR** `B` **OR** `C`.
14+
1515
> ```typescript
1616
> A | B | C
1717
> ```
18+
>
19+
> ```mermaid
20+
> graph LR
21+
> U{{ A &vert; B &vert; C }}
22+
> U -- OR --> A(A)
23+
> U -- OR --> B(B)
24+
> U -- OR --> C(C)
25+
> ```
1826
1927
### Intersection Types
2028
2129
Each intersection type is separated by an ampersand character (`&`) and may
2230
contain any other type definition.
2331
24-
> `A` **AND** `B` **AND** `C`.
2532
> ```typescript
2633
> A & B & C
2734
> ```
35+
>
36+
> ```mermaid
37+
> graph LR
38+
> U{{ A &amp; B &amp; C }}
39+
> U -- AND --> A(A)
40+
> U -- AND --> B(B)
41+
> U -- AND --> C(C)
42+
> ```
2843
2944
### Nullable Types
3045
@@ -38,6 +53,13 @@ and is written as `?T.`
3853
> ```typescript
3954
> ?Example
4055
> ```
56+
> ```mermaid
57+
> graph LR
58+
> U{{ ?Example }}
59+
> U --> SU{{ Example &vert; null }}
60+
> SU -- OR --> A(Example)
61+
> SU -- OR --> B(null)
62+
> ```
4163
4264
</tab>
4365
<tab title="Counterexamples">
@@ -58,12 +80,32 @@ and is written as `?T.`
5880
5981
Parentheses can be used to disambiguate types.
6082
61-
> `A` **AND** `B` _or_ `C`
83+
> Disjunctive form (DNF).
84+
>
6285
> ```typescript
6386
> (A & B) | C
6487
> ```
65-
>
66-
> `A` **AND** `C` _or_ `B` **AND** `C`
88+
>
89+
> ```mermaid
90+
> graph LR
91+
> U{{ &lpar; A &amp; B &rpar; &vert; C }}
92+
> U -- OR --> P1{{A &amp; B}}
93+
> P1 -- AND --> A(A)
94+
> P1 -- AND --> B(B)
95+
> U -- OR --> C(C)
96+
> ```
97+
98+
99+
> Conjunctive form (CNF).
67100
> ```typescript
68101
> (A | B) & C
69102
> ```
103+
>
104+
> ```mermaid
105+
> graph LR
106+
> U{{ &lpar; A &vert; B &rpar; &amp; C }}
107+
> U -- AND --> P1{{A &vert; B}}
108+
> P1 -- OR --> A(A)
109+
> P1 -- OR --> B(B)
110+
> U -- AND --> C(C)
111+
> ```

Writerside/topics/language/shape-types.md

-1
Original file line numberDiff line numberDiff line change
@@ -112,7 +112,6 @@ array{
112112

113113
## Attributes
114114

115-
<primary-label ref="experimental"/>
116115
<secondary-label ref="tl1.1"/>
117116

118117
Each shape field allows you to define list of additional attributes.

0 commit comments

Comments
 (0)