Я играю с PEG.js
Как я могу разрешить вводить ровно 2 буквы?
Это мой подход:
start = word
word = [A-Za-z]{2}
Я использовал {2}
из регулярного выражения, но, к сожалению, он не работает с PEG.js.
Я играю с PEG.js
Как я могу разрешить вводить ровно 2 буквы?
Это мой подход:
start = word
word = [A-Za-z]{2}
Я использовал {2}
из регулярного выражения, но, к сожалению, он не работает с PEG.js.
Вы можете указать класс букв, а затем использовать две буквы для вашего слова. Хотя синтаксис некрасивый, я не смог найти другого способа в документация.
start = word
word = letter letter
letter = [A-Za-z]
i
после закрывающей квадратной скобки, чтобы не учитывать регистр. Кроме того, вы можете продублировать буквенный класс, хотя это и не очень красиво: [a-z]i [a-z]i
.
- person Toothbrush; 04.11.2015
Насколько я вижу, вы можете использовать два варианта. Первый вариант принимает только слово из двух букв.
start = word
word = [A-Za-z][A-Za-z]
Этот второй вариант выполняет некоторую постобработку в javascript.
start = word
word = word:([A-Za-z]+)
{
if(word.length != 2) error("Word does not have two letters);
else return word;
}
{ // function twoLetterWord(o) { // if (o.length == 2) { // return o // } // else fail; // } // } // // start = word // word "word" // = word:[A-Za-z]+ { return twoLetterWord(word); }
? Однако я не смог найти способ сломать парсер вручную. :( - person Wiktor Stribiżew   schedule 30.10.2015