Я работаю над основным редактором электронных таблиц (все написано с нуля) с моим классом Java. Мне было поручено написать пакет функций (для анализа содержимого ячейки и вывода вычисленного результата). В настоящее время я могу проанализировать выражение, такое как 1*(2+3)^4-5%6
, путем преобразования его в RPN, а затем вычисления результата. Теперь я работаю над добавлением имен ячеек в это выражение. То, что я хотел бы, чтобы парсер для имени ячейки выполнял, напрямую заменяет имена ячеек на их числовые значения, но мне тяжело. Мне удалось найти способ использовать регулярное выражение с одной ячейкой (вдохновлено https://stackoverflow.com/a/10073892/3165024), но я не знаю, как заставить его работать с несколькими именами ячеек в выражении.Синтаксис синтаксического анализа синтаксиса
ответ
Просто примечание. Использование Regex для этого подхода не является правильным способом. Простые ссылки, такие как A1, могут быть успешно заменены вычисленными значениями из ссылочных ячеек, но ваша задача может стать намного сложнее при попытке проанализировать более сложные выражения, такие как ссылки на перекрестные листы (= Sheet2! A1, = 'My sheet' A1), 3d-ссылки (= Sheet1: Sheet3! A1), ссылки в стиле R1C1 (= R [-1] C3), определенные имена имен (= имя) и т. Д. Замена ссылок на ячейки для вычисленных значений запретит вам вычислять встроенные функции, такие как ROW (A2) (результат равен 2), , который ожидает ссылочный аргумент вместо значения ячейки.
Я думаю, что ваша форма RPN должна быть увеличена, чтобы включать элементы для простых ссылок, 3d-ссылки и т. Д. Самый простой способ создать синтаксический анализатор для выражений, подобных Excel, - это использование генераторов компилятора. Посмотрите, например, на «Генератор компилятора Coco/R» (http://www.ssw.uni-linz.ac.at/Research/Projects/Coco/), у него есть версия для java.
- 1. пакет анализа синтаксического анализа синтаксиса
- 2. Ошибка: [$ синтаксического анализа: синтаксис] Ошибка синтаксиса: Знак «» неожиданный маркер
- 3. Угловая синтаксического анализа: ошибка синтаксиса
- 4. Ошибка синтаксиса синтаксического анализа PHP
- 5. Ошибка синтаксического анализа - Ошибка синтаксиса
- 6. Синтаксис синтаксического синтаксиса - когда: список
- 7. Предотвращение синтаксиса синтаксического анализа синтаксического анализа синтаксического анализа при использовании -F отсутствует
- 8. Ошибка php. Ошибка синтаксического анализа: ошибка синтаксиса
- 9. PHP Ошибка синтаксического анализа: ошибка синтаксиса
- 10. Ошибка синтаксического анализа синтаксиса PHP Error
- 11. Ошибка синтаксического анализа: Ошибка синтаксиса, пробельная ошибка
- 12. camlp4 расширение синтаксиса, ошибка синтаксического анализа
- 13. Ошибка синтаксиса синтаксического анализа PHP неожиданно '<'
- 14. нг-INIT синтаксического анализа ошибка синтаксиса
- 15. PHP: Ошибка синтаксического анализа, ошибка синтаксиса
- 16. Ошибка синтаксического анализа синтаксиса в Python?
- 17. Синтаксис запроса: синтаксис «Пока» для синтаксического анализа массивов JSON (VBA)
- 18. Неожиданный синтаксис и ошибка синтаксического анализа T_RETURN
- 19. рекурсивного синтаксического анализа для сюсюкать как синтаксис
- 20. Синтаксис синтаксического анализа JSON - простой PHP
- 21. Синтаксис Haskell, ошибки синтаксического анализа для манекенов
- 22. Ошибка синтаксиса синтаксического анализа синтаксиса PHP в строке 20
- 23. Как решить синтаксис/ошибка синтаксического анализа в этой строке
- 24. Ошибка синтаксического анализа Codeigniter
- 25. Синтаксис Направленного Определения для грамматики, чтобы напечатать строку синтаксического анализа
- 26. Как интерпретировать синтаксис функции синтаксического анализа плагина Jquery Autocomplete в
- 27. Очистка состояния синтаксического анализа синтаксического анализа, обработанного бизоном
- 28. Правильный синтаксис для синтаксического анализа SGML-файла с использованием Perl?
- 29. модуль для синтаксического анализа простого синтаксиса в python
- 30. ошибка синтаксического анализа синтаксиса ng-click из директивы templateUrl