diff --git a/README.md b/README.md new file mode 100644 index 0000000..4f7f707 --- /dev/null +++ b/README.md @@ -0,0 +1,36 @@ +## LR-1 +Программная реализация LR(1) - разбора + +### Первоначальная грамматика языка +``` + - аксиома +::= ad|ac +::= b|b +::= f|f +``` + +### Преобразованная грамматика под LR(1) + +1. S::=1a2X3 +2. X::= 2A4d5 +3. X::= 2B6c7 +4. A::= 2,8b8A9 +5. A::= 2,8Λ2,8 +6. B::= 2,9f9B10 +7. B::= 2,9Λ 2,9 + +> Λ - означает пустую строку + +### Таблица + № | S | X | A | B | a | b | c | d | f | $ | +---|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:|:-:| +1 |***ДОПУСК***|ошибка|ошибка|ошибка|**Shift 2**|ошибка|ошибка|ошибка|ошибка|ошибка| +2 |ошибка|**Shift 3**|**Shift 4**|**Shift 6**|ошибка|**Shift 8**|ошибка|ошибка|**Shift 9**|ошибка| +3 |ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|**Reduction 1**| +4 |ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|**Shift 5**|ошибка|ошибка| +5 |ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|**Reduction 2**| +6 |ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|**Shift 7**|ошибка|ошибка|ошибка| +7 |ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|**Reduction 3**| +8 |ошибка|ошибка|**Shift 9**|ошибка|ошибка|**Shift 8**|ошибка|**Reduction 5**|ошибка|**Reduction 5**| +9 |ошибка|ошибка|ошибка|**Shift 10**| ошибка|ошибка|**Reduction 7**|**Reduction 4**|**Shift 9**|**Reduction 4**| +10 |ошибка|ошибка|ошибка|ошибка|ошибка|ошибка|**Reduction 6**|ошибка|ошибка|**Reduction 6**|