pypeg

Un PEG Parser-intérprete en Python
Descargar ahora

pypeg Clasificación y resumen

Anuncio publicitario

  • Rating:
  • Licencia:
  • GPL
  • Precio:
  • FREE
  • Nombre del editor:
  • Volker Birk
  • Sitio web del editor:
  • http://fdik.org/

pypeg Etiquetas


pypeg Descripción

Un parser-intérprete de PEG en Python Python es un buen lenguaje de scripting. Incluso te da acceso a su propio analizador y compilador. También le brinda acceso a otros analistas diferentes para fines especiales como XML y plantillas de cadena. Pero a veces es posible que desee tener su propio analizador. Esto es lo que es PyPeg para. Para obtener una visión rápida sobre lo que está sucediendo, lea este artículo sobre cómo analizar un lenguaje arbitrario a XML con PyPEG en mi blog. ¿Qué es PEG? PEG significa analizar la expresión de la gramática. Es algo así como la idea de expresiones regulares para los lenguajes libres de contexto; Una explicación muy clara que encontrará en el artículo de Wikipedia sobre PEG.with Pegs, puede describir los mismos idiomas con BNF (y son incluso similares). ¿Qué es un parser-intérprete? Los analizadores comunes no están usando clavijas y top iluminado por análisis, pero lr (n) o ll (n) y análisis de abajo hacia arriba. Esto se traduce en la idea de implementar generadores de analizadores. Porque con los analizadores de LR (N) o LL (N) debe calcular primero un DFA, generalmente deje que el generador del analizador haga esto para usted. El resultado es una implementación de analizador para su gramática BNF, que fue la entrada. Uno podría llamar a un generador de analgésicos un compilador de BNF a una implementación del analizador. El parser-intérprete funciona como intérprete en lugar de ser un compilador de este tipo. Simplemente dé su gramática como entrada, y analiza el idioma descrito fuera del texto. No habrá un programa generado. SIGNIFICADO DE PYPEGTHAT: El uso de PyPeg es muy fácil ;-) Si conoce las expresiones regulares ya, aprenderá a usar PyPeg rápidamente. Un ejemplo de Smplize Smplee: Piense en un idioma simple como este: Función FAK (n) {if (n == 0) {// 0! es 1 por definición retorno 1; } else {return n * fak (n - 1); };} Un pypeg para ese idioma se ve como el siguiente código (consulte también el script de muestra): definir comentario (): devuelva definición literal (): return re.compile (R'd * .d * | D + |". *? "') Def símbolo (): return re.compile (r" w + ") Def Operador (): devuelva re.compile (R" + | - | * | / | == ") DEF OPERACIÓN (): Símbolo de retorno, Operador, Def Expression (): Devolver DEF Expressionlist (): Expresión de retorno, -1, (",", Expresión) DefSattatement (): palabra clave de retorno ("return"), expressiondedef iFestatement (): palabra clave de devolución ("IF") "( ", expresión") ", bloque, palabra clave (" otra cosa "), declaración BlockDef (): devuelva [Fi DEF PARAMETERLIST (): RETURN "(", símbolo, -1, (",", símbolo), ")" Functlection Call (): Símbolo de devolución, "(", ExpressionList, ")" Función DEF (): Retorno palabra clave ("Función"), símbolo, parametro, BlockDef Simplelanguage (): Requisitos de la función de retorno: · Python


pypeg Software relacionado