Программа строит множества СЛЕД и ПЕРВ для символов грамматики:
Также она строит множества ВЫБОР для правил и находит пересечения в них:
- В папке, где происходит запуск, должен находиться файл
rules.jsonс описаниями грамматики. - Первый символ, с которого начинается вывод -
S - Все нетерминалы и терминалы должны состоять из одного символа - недопустимы нетерминалы/терминалы вида
S'/a'и т. п.
Пример содержимого rules.json:
{
"rules": [
{
"left": "S",
"right": "S;O"
},
{
"left": "S",
"right": "Z;"
},
{
"left": "O",
"right": "Y[S]"
},
{
"left": "O",
"right": "Y[S][S]"
},
{
"left": "O",
"right": "{[S]Y}"
},
{
"left": "O",
"right": "{Y[S]}"
},
{
"left": "O",
"right": "a=Y"
},
{
"left": "Y",
"right": "(Y|Y)"
},
{
"left": "Y",
"right": "(Y&Y)"
},
{
"left": "Y",
"right": "!(Y)"
},
{
"left": "Y",
"right": "a"
},
{
"left": "Z",
"right": "O"
}
]
}
