Я пытаюсь проверить пользовательское выражение. Это выражение содержит следующие условия:
- Номер позиции;
- Тип операции;
- Выражение;
- Псевдоним (необязательно);
- Комментарий (необязательно);
Условия отделяются "|" труба. Итак, четыре трубы это предел.
Итак, чтобы быть правильным выражением:
0 | S | написать (& var1) | alias1 | мой комментарий - ОК
0 | K | написать (& var1) | alias1 | мой комментарий - FAIL
1 | I | прочитать (& var2) | alias2 | - ОК
1 | S | прочитать (& var1) || - ОК
2 | N | if (& var1 == & var2); читать (& var3) || - ОК
3 | S ||| - FAIL
3 | I | запись (& var1) | псевдоним 3 | - FAIL
3 | N | написать (& var1) | alias1 | мой комментарий | - FAIL
Я использую этот ER для проверки:
* * * 1 022 (\ д {} 1,10) \ | (S | M | I | N), \ | \ (+.?) | ([A-Za-Z0-9] +) \ |? (. +)
Но я не могу проверить выражение, которое заканчивается на трубе. Потому что в комментарии может быть любой символ, кроме трубы ...
Какая-то идея ??
Спасибо