Pipeg.

Um PEG Parser-Interal em Python
Baixe Agora

Pipeg. Classificação e resumo

Propaganda

  • Rating:
  • Licença:
  • GPL
  • Preço:
  • FREE
  • Nome do editor:
  • Volker Birk
  • Site do editor:
  • http://fdik.org/

Pipeg. Tag


Pipeg. Descrição

Um PEG analisador-intérprete em Python Python é uma boa linguagem de script. Ele ainda lhe dá acesso a seu próprio analisador e compilador. Ele também oferece acesso a diferentes outros analisadores para fins especiais, como xml e modelos de string. Mas às vezes você pode querer ter seu próprio analisador. Isto é o que é o PYPEG para obter uma visão rápida sobre o que está acontecendo, por favor leia este artigo sobre como analisar uma linguagem arbitrária para XML com o PYPEG no meu blog. O que é PEG? Peg significa analisar a gramática de expressão. É algo como a ideia de expressões regulares para idiomas livres de contexto; Uma explicação muito clara você encontrará no artigo da Wikipedia sobre PEG.With Pegs Você pode descrever os mesmos idiomas como com BNF (e eles são ainda semelhantes). O que é um analisador analisador? Os analisadores comuns não estão usando pinos e análise do outdown, mas LR (n) ou ll (n) e análise de baixo para cima. Isso resulta na ideia de implementar os geradores de analisadores. Porque com os analisores LR (n) ou LL (n) que você precisa para calcular um DFA primeiro, geralmente você deixa o gerador de parser fazer isso para você. O resultado é uma implementação analisadora para sua gramática BNF, que foi a entrada. Pode-se chamar um gerador de analisador Um compilador de BNF para uma implementação de analisador. Um analisador-intérprete funciona como um intérprete em vez de ser um tal compilador. Basta dar sua gramática como entrada, e analisa a linguagem descrita fora do texto. Não haverá programa gerado.Using pypegthat significa: usar o PYPEG é muito fácil ;-) Se você já conhece expressões regulares, você aprenderá a usar o PYPEG rapidamente. Um pequeno exemplo Samplean: Pense em uma linguagem simples como esta: Função Fak (n) {if (n == 0) {// 0! é 1 por definição return 1; } else {return n * fak (n - 1); };}} Um PYPEG para esse idioma se parece com o seguinte código (consulte também o script de amostra): Def Comenty (): Return Def literal (): return RE.compile (r'd * .d * | d + |". * "?" ') Def Symbol (): Return Rebile (R "W + ") Operador de Def (): Return Rebpile (R" + | - | * | / | == ") Def Operação (): Retornar símbolo, operador, Def expressão (): Retorna DEF ExpressionList (): Expressão de retorno, -1, (",", expressão) def retornstatement (): Revenda a palavra-chave ("return"), ExpressionDef IfSstatement (): Return Keyword ("if") "(se" ", expressão", bloco, palavra-chave ("else"), declaração do BlockDef (): retorne , ";" Def Block (): Return "{", -2, declaração "}" Def Parametrist (): return "(", símbolo, -1, (", símbolo),") "Def funçãoCall (): retorno símbolo," (", lista de expression") "Def Função (): Return ("Função"), símbolo, parâmetros, blockdef simpleLanguage (): requisitos de função de retorno: · Pitão


Pipeg. Software Relacionado