Другим способом я нашел
submissionSchema.pre('remove', function(next) {
this.model('Client').remove({ submission_ids: this._id }, next);
next();
});
Весь этот раздел кода не имеет абсолютно никакого смысла. Вы ищете серию букв, за которыми следует пробел или символ новой строки, а затем выполняете цикл while, чтобы увидеть, когда первый символ (вы никогда не меняете значение i
) в yytext
равен строке, которая происходит с быть пустым?
([a-zA-z])+(" "|\n) {word++; int i=0;
while(yytext[i]!="\0")
{
if(yytext[i]=" ") blank++;
else if(yytext[i]=="\n") line++;
}
}
Если вы ищете завершающий символ NUL, вам нужно указать его как символ, а не заключать его в двойные кавычки. И вам также нужно увеличить i
, чтобы вы пересекли все yytext
. В настоящее время ваш цикл while
никогда не завершится, что объясняет, почему ^ D ничего не делает. Но вам не нужно ничего этого делать.
Так как все, что вам нужно, это подсчет количества слов, то все, что вам нужно сделать, это ...
([a-zA-z])+ {word++;}
... поскольку другие правила будут обрабатывать счетные пробелы и переводы строк и т. Д.