Skip to content

Commit 68d3afa

Browse files
committed
feat: add pattern
1 parent 5c52eee commit 68d3afa

File tree

1 file changed

+67
-0
lines changed

1 file changed

+67
-0
lines changed

src/patterns/1.d.ts

Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
/**
2+
* Type definitions for simple statements word order structure in English
3+
*/
4+
5+
// Basic sentence component types
6+
export type Who = string; // Who performs the action
7+
export type Verb = string; // Action verb
8+
export type What = string; // Object of the action
9+
export type Where = string; // Location
10+
export type How = string; // Manner
11+
export type When = string; // Time
12+
13+
// Simple statement structure
14+
// Note: According to the material, a simple statement can have six parts, but not every sentence has all of them
15+
// The time adverbial (When) can be placed at the beginning or the end of a statement
16+
export interface SimpleStatement {
17+
who: Who; // Required: subject of the sentence
18+
verb: Verb; // Required: action verb
19+
what?: What; // Optional: object of the action
20+
where?: Where; // Optional: location
21+
how?: How; // Optional: manner
22+
when?: When; // Optional: time
23+
timePosition?: 'beginning' | 'end'; // Where to place the time adverbial, defaults to 'end' if not specified
24+
}
25+
26+
// Example pattern: The policeman arrested the thief.
27+
export type PolicemanArrestedThief = SimpleStatement & {
28+
who: 'The policeman',
29+
verb: 'arrested',
30+
what: 'the thief'
31+
};
32+
33+
// Example pattern: The thief arrested the policeman.
34+
export type ThiefArrestedPoliceman = SimpleStatement & {
35+
who: 'The thief',
36+
verb: 'arrested',
37+
what: 'the policeman'
38+
};
39+
40+
// More complex example with time adverbial at the end
41+
export type StatementWithTimeAtEnd = SimpleStatement & {
42+
who: 'The boy',
43+
verb: 'played',
44+
what: 'football',
45+
where: 'in the park',
46+
how: 'happily',
47+
when: 'yesterday',
48+
timePosition: 'end'
49+
};
50+
51+
// Example with time adverbial at the beginning
52+
export type StatementWithTimeAtBeginning = SimpleStatement & {
53+
who: 'the girl',
54+
verb: 'reads',
55+
what: 'books',
56+
where: 'in the library',
57+
how: 'quietly',
58+
when: 'every day',
59+
timePosition: 'beginning'
60+
};
61+
62+
// Simple pattern without all optional parts
63+
export type SimpleStatementMinimal = SimpleStatement & {
64+
who: 'The sun',
65+
verb: 'rises',
66+
where: 'in the east'
67+
};

0 commit comments

Comments
 (0)