Не решит студент. И профессор (от программирования) не решит. Потому, что нет приемлемых моделей идентификации причастного и деепричастного оборота. Поскольку Вы хотите считать эти запятые парными (то есть, фактически отдельным от одинарной запятой знаком препинания), то, пожалуйста, к филологам. Они Вам напишут (может быть, напишут) алгорифм страниц на семь-восемь (в лучшем случае).
Вас ждет еще один подводный камень — тире. В грамматике различают тире и дефис, при наборе (подготовке текстов):
1) дефис (
-), как соединитель сложных слов
моделист-конструктор,
собака-на-сене;
2) неразрывный дефис (
-) — вариация дефиса, запрещающая разрыв слова в этом месте при переносе на следующую строку (согласитесь,
как-
то выглядит неправильно);
3) перенос (
-) — который проявляется только в случае переноса слова в этом месте, в остальных случаях невидим;
4) короткое тире (
–) — например, для записи диапазонов
XIX–XX век;
5) длинное тире (
—) — ну, оно и есть оно;
6) я мог что-то упустить, я не профи. Так что…
Беда в том, что при все это часто смешано в кучу: тире обозначают разным сочетанием разных символов, на это набегают ошибки сканирования, и т.п.
Добавлю еще маленькие радости:
1)
?!,
?!? должны быть отдельными знаками препинания;
2) тоже относится к многоточиям:
…,
,..,
!..,
?.. . Последнее осложняется и тем, что некоторые пишут три точки (
...) вместо многоточия (
…). А в некоторых книгах встречается сочетание из четырех точек (
....);
3) а кавычки! как же без кавычек. Одинарных, двойных, «уголком». И не в коем случае не путать с апострофом! В слове
д’Аламбер нет кавычки, и не надейтесь. То, что их иногда обозначают ублюдками из ASCII(
",
'), лишь добавит шарма в решение Вашей задачи.
Так что, не верю я в студентов. Верю в лингвистов. Ищите таковых и начинайте работать с ними (если они захотят).
P.S. Опять скажете, я длинно написал? А Вы по пунктику, по пунктику читайте.