Skip to content

A simple lexical analyzer made in Java for a college project.

License

Notifications You must be signed in to change notification settings

hd1fernando/LexJar

Repository files navigation

Analizador Léxico Java

This is a simple lexical analyzer make in Java for a college project.

Este Analisador Léxico, escrito em Java, lê um programa fonte a partir de um arquivo com extensão ".cpt" (C português). E gera um arquivo de saída gravado com a extensão ".ctk" (C tokens).

O Analisador Léxico reconhece os tokens apresentados na tabela abaixo

IDENTIFICADOR TOKEN LEXEMA
1 IDENTIFICADOR
2 INTEIRO
3 REAL
4 CARACTER
5 CADEIA_CARACTERES
6 ATRIBUICAO <-
7 SOMA +
8 SUBRITACAO -
9 MULTIPLICACAO *
10 DIVISAO /
11 POTENCIA ^
12 SE se
13 ENQUANTO enquanto
14 PARA para
15 INICIO_ESCOPO {
16 FIM_ESCOPO }
17 INICIO_PARAMETRO (
18 FIM_PARAMETRO )
19 TIPO int, real, caracter, vazio
20 COMENTARIO_LINHA //
21 INICIO_COMENTARIO_PARAGRAFO /*
22 FIM_COMENTARIO_PARAGRAFO */
23 FIM_COMANDO ;
24 VIRGULA ,
25 ENTRADA_PADRAO Teclado
26 SAIDA_PADRAO Tela
27 COMPARACAO =
28 SENAO senao
29 RETORNO_FUNCAO retornar
30 PRINCIPAL principal
31 RESTO_DIVISAO %
32 MENOR <
33 MENOR_IGUAL <=
34 MAIOR >
35 MAIOR_IGUAL >=

Exemplos de programas a serem reconhecidos:

Programa I:

vazio principal () {
  int a, b;
  tela <- “Informe o primeiro número:”;
  a <- teclado;
  tela <- “Informe o segundo número:”;
  b <- teclado;
  se (a > b)
    tela <- “Maior: ” + a;
  senao
    tela <- “Maior: ” + b;
}

Programa II:

/* Programa para identificar o maior
dentre dois números.
*/
vazio principal () {
  int a, b;
  tela <- “Informe o primeiro número:”;
  a <- teclado;
  tela <- “Informe o segundo número:”;
  b <- teclado;
  tela <- “Maior: ” + maior (a, b);
}
int maior (int a, int b) {
  se (a > b)
    retornar (a);
  senao
    retornar (b);
}

Programa III:

vazio principal () {
  int num;
  tela <- “Informe o número:”;
  num <- teclado;
  pares (num);
}
//Procedimento para identificar números pares menores que n.
vazio pares (int n) {
  int i <- 0;
  enquanto (i < n)
    se (i % 2 = 0)
      tela <- i;
}

Programa IV:

vazio principal () {
  int num;
  tela <- “Informe o número:”;
  num <- teclado;
  pares (num);
}

vazio pares (int n) {
  int i ;
  para (i <- 0; i < n; i <- i + 1)
    se (i % 2 = 0)
      tela <- i;
}

About

A simple lexical analyzer made in Java for a college project.

Topics

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages