@@ -40,6 +40,8 @@ async function handleType(obj, sentence, langRef, src, forces){
40
40
obj = await handleADV ( obj , langRef ) ;
41
41
break ;
42
42
}
43
+
44
+ return obj
43
45
}
44
46
45
47
async function handleVERB ( obj , sentence , langRef , src , forces ) {
@@ -52,7 +54,6 @@ async function handleVERB(obj, sentence, langRef, src, forces){
52
54
}
53
55
/////////////////////////////////////////////////////////
54
56
const defaults = await dbGetter . getPersistent ( langRef , 'DEFAULTS' , { } )
55
- obj . meta . PERSON = defaults . PERSON ;
56
57
57
58
const childrenSUBJ = obj . children . filter ( c => c . type === 'SUBJ' || c . type === 'NOUN' ) //HERE: check if include NOUN here is ok
58
59
if ( forces . PERSON && childrenSUBJ . every ( c => ! sentence [ c . position ] . words . includes ( forces . PERSON ) ) ) {
@@ -62,21 +63,22 @@ async function handleVERB(obj, sentence, langRef, src, forces){
62
63
const personsPlurals = await dbGetter . getPersistent ( langRef , 'PERSONS/PLURALS' , { } )
63
64
const foundPerson = personsPlurals . find ( person => childrenSUBJpersons . includes ( person [ 0 ] ) || childrenSUBJpersons . includes ( person [ 1 ] ) ) ;
64
65
obj . meta . PERSON = foundPerson [ 1 ] ;
65
- } else if ( childrenSUBJ . length === 1 ) obj . meta . PERSON = sentence [ childrenSUBJ [ 0 ] . position ] . meta . PERSON || obj . meta . PERSON ;
66
+ } else if ( childrenSUBJ . length === 1 ) obj . meta . PERSON = sentence [ childrenSUBJ [ 0 ] . position ] . meta . PERSON || defaults . PERSON [ 0 ] ;
67
+ else obj . meta . PERSON = defaults . PERSON [ 0 ] ;
66
68
67
- obj . meta . TIME = defaults . TIME ;
68
69
const childrenADV = obj . children . filter ( c => c . type === 'ADV' )
69
70
if ( forces . TIME ) {
70
71
obj . meta . TIME = forces . TIME ;
71
- } else if ( childrenADV . length > 1 ) {
72
+ } else if ( childrenADV . length > 1 ) { //HERE: maybe sorting here is worthless since we do a for loop later, maybe it's better to just do the loop and overwrite if position is higher
72
73
const sortedChildrenADV = childrenADV . sort ( ( a , b ) => Math . abs ( a . position - obj . position ) - Math . abs ( b . position - obj . position ) )
73
74
for ( childADV of sortedChildrenADV ) {
74
75
if ( sentence [ childADV . position ] . meta . TIME ) {
75
76
obj . meta . TIME = sentence [ childADV . position ] . meta . TIME ;
76
77
break ;
77
78
}
78
79
}
79
- } else if ( childrenADV . length === 1 ) obj . meta . TIME = sentence [ childrenADV [ 0 ] . position ] . meta . TIME || obj . meta . TIME ;
80
+ } else if ( childrenADV . length === 1 ) obj . meta . TIME = sentence [ childrenADV [ 0 ] . position ] . meta . TIME || defaults . TIME ;
81
+ else obj . meta . TIME = defaults . TIME ;
80
82
81
83
return await conjugateVERB ( obj , langRef , src , defaults ) ;
82
84
}
0 commit comments