В грамматиках (например, LL (1)), обозначает обозначенный символ. На практике я не понимаю, что это за символ. Чтобы понять, мне нужен простой и практичный пример.Что такое символ взгляда?
ответ
LL (1) грамматик поможет вам решить сразу, какое правило грамматики вы будете использовать. Этот однозначный токен означает, что вам нужно прочитать только следующий символ из текущего символа, который вы читаете.
LL (1) grammars поможет вам уменьшить сложность до O(n)
и не будет возвращать данные при разборе ввода.
Пусть %
быть символ, который вы читаете, а строка ввода быть (a + a)
LL (1) грамматикой:
S -> F (Rule1)
S -> (S + F) (Rule2)
F -> a (Rule3)
Синтаксический Таблица является:
( ) a + $
S 2 - 1 - -
F - - 3 - -
Тогда у вас есть:
%(a + a)
(прочитать начало строки и опережения является (так решили применить Rule2 в соответствии с синтаксического анализа таблицы)
Абстрактный синтаксис дерева теперь:
S
// | \ \
( S + F )
Затем вы потребляете (
. И вы продолжаете то же самое.
Шаг 2:
S
// | \ \
( S + F )
|
F
|
a
Шаг 3:
S
// | \ \
( S + F )
| |
F a
|
a
Вы можете увидеть пример Википедии, которая использует стек, вместо абстрактного синтаксического дерева в точно таким же образом.
Nitpick: блок lookahead - это токены, а не символы. Маркер может состоять из более чем одного символа. –
- 1. Что такое символ ** glob?
- 2. Что такое символ Хаскелла?
- 3. Что такое математический символ?
- 4. Что такое символ перехода?
- 5. Что такое «символ подстановки»?
- 6. Что такое символ «_ZN7android16CameraParameters9isPreviewE»?
- 7. Что такое '; символ в питоне?
- 8. Что такое александрия: обеспечить символ?
- 9. Что такое символ @ в Javascript?
- 10. Что такое символ @ в PHP?
- 11. Что такое таинственный секретный символ?
- 12. Что такое символ die() весной?
- 13. Что такое символ «@» для комментариев?
- 14. Что такое символ @ @ в vi?
- 15. Что такое символ Юникода местоположения?
- 16. Что такое символ ~ ~ в CSS?
- 17. Что такое двоичный нулевой символ?
- 18. Что такое неопределенный символ: X509_EXTENSION_free?
- 19. Что такое символ препроцессора __DARWIN_C_LEVEL?
- 20. Что такое символ подчеркивания, используемый в Scala?
- 21. Что такое двойной символ подчеркивания в Perl?
- 22. Что такое символ, представленный keycode (15) C#?
- 23. Что такое символ увеличительного стекла индекса UITableView?
- 24. Что такое ~ символ, используемый для в C#
- 25. Что такое символ новой строки - '\ n'
- 26. Что такое | символ >> в Scala
- 27. Что такое символ `<>` в brightscript?
- 28. Что такое символ трубы («|») в C# String?
- 29. Что такое символ доллара, используемый в ASP.net?
- 30. Что такое символ «$» при использовании в gulpfile.js?
Такой взгляд - это символ, который интерпретируется некоторыми командами как «команда». Это позволяет заглядывать вперед, чтобы читать и оценивать часть входного потока без фактической пересылки местоположения потока_. В качестве эффекта следующая операция чтения будет считывать одну и ту же последовательность. Преимущество: вы можете заранее увидеть, что вы должны ожидать от ввода. К сожалению, в настоящее время нет примера ... – arkascha
Похож на вопрос для [Programmer's StackExchange] (http://programmers.stackexchange.com/) –