PEGwSA é um formalismo usado para descrever analisadores sintáticos top-down que estende Parsing Expression Grammar (PEG) com atributos sintáticos e operadores para manipulalos. PEGwSA serve como base para Adaptable Parsing Expression Grammar (APEG), formalismo que estende PEGwSA com mecanismos para manipular dinâmicamente as regras de produção que constituem a gramática.
Essa formalização é constituída por quatro artefatos: sintaxe, sistema de tipos e semânticas operacionais small-step e big-step. À exceção da semântica operacional small-step, todos esses artefatos são dividios em dois arquivos: um arquivo que abarca as expressões de atributos e outro, as expressões de parsing.
Os arquivos attributeL-syntax.rkt e attributePeg-syntax.rkt contém a especificação da sintaxe de PEGwSA.
Os arquivos attributeLType-bigStep.rkt e attributePegType-bigStep.rkt contém a especificação do sistema de tipos de PEGwSA.
Os arquivos attributeL-bigStep.rkt e attributePeg-bigStep.rkt contém a especificação da semântica operacional big-step de PEGwSA.
O arquivo attributeL-bigStep.rkt contém a especificação da semântica operacional small-step de PEGwSA.
Além disso, efetuamos alguns testes sobre a formalização de PEGwSA, esses testes podem ser encontrados na pasta tests.