JS PARSER GENERATORS

Marcelo Haskell Camargo

marcelocamargo@linuxmail.org

haskellcamargo.github.io

SOBRE

Programming languages researcher and designer

- Capybara Programming Language

- Quack Programming Language

- PHP Interpreter Activist

SUMÁRIO

  1. O que é um parser
  2. Gramáticas formais
  3. Geradores de parsers JS
  4. Construindo um analisador aritmético

O QUE É UM PARSER

  • Base de um compilador
  • Análise sintática com base gramatical
  • Construção de linguagens

LEXER

  • Divide texto em um conjunto de tokens
  • Classifica-os com tags e talvez valores
  • "Alimenta" o parser

PARSER

  • Consome tokens
  • Possui uma gramática
  • Pode gerar a AST (árvore sintática abstrata)

AST

  • Árvore representa o programa
  • Análise semântica
  • Pode gerar código

GRAMÁTICAS FORMAIS

  • Definição formal de uma linguagem
  • Conjunto de produções que a definem

SISTEMA NUMÉRICO DO PHP

COMO FUNCIONA?

  • Parser generator recebe uma gramática
  • Gera código capaz de analisar a linguagem desta
  • Alimenta-se o parser gerador com trechos da linguagem

GERADORES DE PARSER JS

  • PegJS
  • Jison
  • Parsimmon
  • OMeta
  • ANTLR

CONSTRUINDO UM ANALISADOR ARITMÉTICO

OBRIGADO!
PERGUNTAS?

JS Parser Generators

By Marcelo Camargo

JS Parser Generators

  • 1,406