Не удалось найти решение ошибки ^ D в yylex

Другим способом я нашел

submissionSchema.pre('remove', function(next) {
    this.model('Client').remove({ submission_ids: this._id }, next);
    next();
});
0
задан Georgi Hristozov 17 January 2019 в 17:04
поделиться

1 ответ

Весь этот раздел кода не имеет абсолютно никакого смысла. Вы ищете серию букв, за которыми следует пробел или символ новой строки, а затем выполняете цикл 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++;}

... поскольку другие правила будут обрабатывать счетные пробелы и переводы строк и т. Д.

0
ответ дан Chris Turner 17 January 2019 в 17:04
поделиться
Другие вопросы по тегам:

Похожие вопросы: