Universidade do Estado do Rio Grande do Norte – UERN        Campus Natal – Ciência da Computação           Disciplina: Com...
Definição   Análise léxica é o processo de analisar a entrada    de linhas de caracteres e produzir uma seqüência    de s...
Praticando a Análise Léxica com Lua   Informações Básicas       Lua é uma linguagem de        programação rápida e      ...
Praticando a Análise Léxica com Lua   Características da Linguagem     Lua  é uma linguagem tipada dinamicamente, é     ...
Escopo da Linguagem   Estrutura Condicional    c = 10 and 20    print(c)   Estrutura de Repetição    a = 0    repeat    ...
Alfabeto de Lua   {a...z, A...Z, 0...9, .. ,(, ), =, “ ,<, >, <=, >=, ==,    ~=, -, +, *, . , /, [, ], -- }
Definição das Expressões Regulares   Identificador:    ^[^p{Digit}p{Punct}áàäâÁÀÄÂéèëêÉÈËÊíìïîÍÌ    ÏÎóòöôÓÒÖÔúùüûÚÙÜÛ](w...
Definição das Expressões Regulares   Tomada de decisão: ^(if|then|else|elseif)$   Number: ^(?![+-    ]?.)(?!$)(?!p{Alpha...
Definição das Expressões Regulares   Tomada de decisão: if|then|else|elseif   Number: ^(?=.+)(?:[1-    9]d*|0)?(?:.d+)?$...
Demonstração Prática   Para a visualização prática acesse o seguinte    endereço:    https://github.com/johny83/compilado...
Referências   TUTORIAL. A Linguagem de Programação Lua. Disponível em    <http://www.lua.org/portugues.html>   REINERT, ...
Próximos SlideShares
Carregando em…5
×

Analisador Léxico para linguagem Lua

2.215 visualizações

Publicada em

Publicada em: Tecnologia
0 comentários
1 gostou
Estatísticas
Notas
  • Seja o primeiro a comentar

Sem downloads
Visualizações
Visualizações totais
2.215
No SlideShare
0
A partir de incorporações
0
Número de incorporações
2
Ações
Compartilhamentos
0
Downloads
36
Comentários
0
Gostaram
1
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

Analisador Léxico para linguagem Lua

  1. 1. Universidade do Estado do Rio Grande do Norte – UERN Campus Natal – Ciência da Computação Disciplina: Compiladores (Rosiery) ANALISADOR LÉXICO Antonio Porto, Jônata Marcelino, Mariêta Cunha
  2. 2. Definição Análise léxica é o processo de analisar a entrada de linhas de caracteres e produzir uma seqüência de símbolos chamado "símbolos léxicos" (tokens). A Análise Léxica é a forma de verificar determinado alfabeto. Quando analisamos uma palavra, podemos definir através da análise léxica se existe ou não algum carácter que não faz parte do nosso alfabeto.
  3. 3. Praticando a Análise Léxica com Lua Informações Básicas  Lua é uma linguagem de programação rápida e leve, projetada para estender aplicações. Lua é inteiramente projetada, implementada e desenvolvida no Brasil. Ela foi criada por uma equipe na PUC-Rio (Pontifícia Universidade Católica do Rio de Janeiro).
  4. 4. Praticando a Análise Léxica com Lua Características da Linguagem  Lua é uma linguagem tipada dinamicamente, é interpretada a partir de bytecodes para uma máquina virtual.  Essas características fazem de Lua uma linguagem ideal para configuração, automação (scripting) e prototipagem rápida.
  5. 5. Escopo da Linguagem Estrutura Condicional c = 10 and 20 print(c) Estrutura de Repetição a = 0 repeat print ( a ) a = a + 1 until a == 5
  6. 6. Alfabeto de Lua {a...z, A...Z, 0...9, .. ,(, ), =, “ ,<, >, <=, >=, ==, ~=, -, +, *, . , /, [, ], -- }
  7. 7. Definição das Expressões Regulares Identificador: ^[^p{Digit}p{Punct}áàäâÁÀÄÂéèëêÉÈËÊíìïîÍÌ ÏÎóòöôÓÒÖÔúùüûÚÙÜÛ](w)*$ Funções: ^(io.write|return|print|function)$ Operadores Lógicos: ^(and|or|not)$ Operador Aritmético: ^[-|+|*|/]$ Símbolos: ^(=|,)$ Operador relacional: ^(<|>|<=|>=|==|~=)$ Delimitadores: ^(end|(|)|")$ Laços iterativos: ^(while|do|repeat|until)$ Nil: ^(nil)$
  8. 8. Definição das Expressões Regulares Tomada de decisão: ^(if|then|else|elseif)$ Number: ^(?![+- ]?.)(?!$)(?!p{Alpha})(?!p{Punct}&&[^ +-])(?!p{Space})(?![p{Graph}&&[^d+- ]])(((?![+-]0)(+|-)?[^0]+[0-9]*+(.[0- 9]*))|((?![+-]0)(+|-)?^[^0][0- 9]*)|((+|-)?0?+(.[0-9]+))|0)?$ Comentário: ^- {2,}([p{Punct}]|s|w|d|p{L})*$ Concatenação: ^(..)$ String: ^"(p{Digit}|p{Alpha}|s|[p{Punct}&&[ ^"]]|[^p{Z}p{C}&&[^"]])*"$
  9. 9. Definição das Expressões Regulares Tomada de decisão: if|then|else|elseif Number: ^(?=.+)(?:[1- 9]d*|0)?(?:.d+)?$ Comentário: -- Concatenação: .. String: ^"[a-zA-Z0- 9áãàêéíóôöőúüűÁÉÍÔÓÖŐÚÜŰs=- ]*"$ Comentários: -{1,2}[a-zA-Z0- 9áãàêéíóôöoúüuÁÉÍÔÓÖOÚÜU."=- _*s]*
  10. 10. Demonstração Prática Para a visualização prática acesse o seguinte endereço: https://github.com/johny83/compiladorlua
  11. 11. Referências TUTORIAL. A Linguagem de Programação Lua. Disponível em <http://www.lua.org/portugues.html> REINERT, Karoline. Linguagem de Programação Lua. Artigo. Disponível em: <http://www.comp.ita.br/~gia n/tes04/trabalhos/lua-all.signed.pdf> Java Regex Tester. Disponível em <http://java-regex- tester.appspot.com> Java Regex Tutorial. Disponível em <http://www.vogella.com/articles/JavaRegularExpressions/article.h tml>

×