Diré que la respuesta a su pregunta es "no, no puede implementar el algoritmo del patio de maniobras con una expresión regular". Esto es por la misma razón por la que no puede analizar HTML arbitrario con expresiones regulares. Lo que se reduce a esto:
Las expresiones regulares no tienen una pila. Debido a que el algoritmo de yarda de derivación se basa en una pila (para empujar y explotar operandos mientras convierte de infijo a RPN), las expresiones regulares no tienen la "potencia" computacional para realizar esta tarea.
Esto pasa por alto muchos detalles, pero una "expresión regular" es una forma de definir un idioma normal. Cuando "usa" una expresión regular, le pide a la computadora que diga: "Mire un cuerpo de texto y dígame si alguna de esas cadenas está en mi idioma. El lenguaje que definí con una expresión regular". Apuntaré al this most excellent answer which you and everyone reading this should upvote para obtener más información sobre los idiomas habituales.
Por lo tanto, ahora necesita un concepto matemático para aumentar los "idiomas regulares" a fin de crear idiomas más potentes. Si fueras a caracterizar el algoritmo del patio de maniobras como una realización de un modelo de potencia computacional, entonces podrías decir que el algoritmo se describiría como context-free grammar (hey, qué sabes, ese enlace usa un árbol de análisis de expresiones como ejemplo).) A push-down automata. Algo con una pila.
Si no está familiarizado con la teoría de los autómatas y las clases de complejidad, esos artículos de wikipedia probablemente no sean tan útiles sin explicarlos desde cero.
El punto es que usted puede usar regex para ayudar a escribir yarda de maniobras. Pero las expresiones regulares no son muy buenas para realizar operaciones que tienen una profundidad arbitraria, que tiene este problema. Así que no pasaría demasiado tiempo yendo por la avenida Regex para este problema.
Cuando habla de analizar una expresión regular, ¿quiere decir tokenizar la cadena que describe el idioma normal? ¿O te refieres a ejecutar el autómata de estado finito que representa? ¿O algo mas? – Gabe
Me refiero a crear un AST que represente la expresión regular. Convertir ese AST en un autómata para que coincida con la expresión regular es otro problema, lo sé. –