Skip to content

Este interpretador de PORTUGOL está sendo construído com o intuito de auxiliar alunos iniciantes de programação no estudo de algoritmos, e com o código-fonte do analisador disponibilizado online possibilitar que qualquer pessoa possa utilizá-lo e/ou melhorá-lo.

Notifications You must be signed in to change notification settings

diego-miranda-ng/portugol_interpreter

Repository files navigation

PORTUGOL Interpreter

##RESUMO O objetivo deste projeto é criar um interpretador para uma linguagem de programação derivada do Português Estruturado. O objetivo desta linguagem é auxiliar alunos iniciantes de programação no estudo de algoritmos e com o código-fonte do interpretador disponibilizado online possibilitar que qualquer pessoa tenha acesso a ele para melhorá-lo ou utilizá-lo em outros projetos ou estudos.

##Elementos Léxicos texto = " { identificador | pontuação | inteiro | ** ** } ".
identificador = ( letra | _ letra ){ letra | digito | _ }.
decimal = inteiro . inteiro.
inteiro = dígito { dígito }.
letra = a | b | ... | z | A | B | ... | Z.
dígito = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9.
pontuação = ( | ) | [ | ] | { | } | ** | “'” | , | ; | ! | @ | # | % | $ | & | . | ** | ? | : | = | _ | < | >.

##Sintaxe da linguagem programa = algoritmo identificador { ( declarações | declaração_função ) } bloco fim_algoritmo.
bloco = { ( decisão | declarações | retorno | se | enquanto | para | faça | caso | repita | até ) }.

declarações = declaração_tipo | declaração_constante | var declaração_variável.
decisão = identificador ( argumentos | seletor = expressão ).

retorno = retorne expressão.
argumentos = ( [ expressão { , expressão } ] ).
declaração_função = funcao identificador [ parâmetros ] [ : identificador ] bloco fim_funcao .
parâmetros = ( declaração_variável { ; declaração_variável } ).

declaração_tipo = tipo identificador = ( identificador | registro { declaração_variável } fim_registro ).
declaração_constante = const identificador = expressão.
variável = identificador { [ expressão ] }.
declaração_variável = variável { , variável } : identificador.

expressão = expressão_simples { ( < | > | <= | >= | == ) expressão_simples}.
expressão_simples = [ + | - ] termo { ( + | - | ou ) termo }.
termo = fator { ( * | / | e ) fator }.
seletor = { . identificador | [ expressão ] }.
fator = texto | inteiro | decimal | identificador ( seletor | argumentos ) | ( expressão ) | nao fator.

se = se expressão entao bloco { senao_se expressão entao bloco } [ senao bloco ] fim_se.
caso = caso expressão seja expressão : bloco { seja expressão : bloco } [ senao : bloco ] fim_caso.

faça = faca bloco sempre_que expressão.
enquanto = enquanto expressão faca bloco fim_enquanto.
repita = repita bloco ate_que expressão.
até = ate expressão repita bloco fim_ate.
para = para identificador seletor de expressão ate expressão [ passo expressão ] faca bloco fim_para.

About

Este interpretador de PORTUGOL está sendo construído com o intuito de auxiliar alunos iniciantes de programação no estudo de algoritmos, e com o código-fonte do analisador disponibilizado online possibilitar que qualquer pessoa possa utilizá-lo e/ou melhorá-lo.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Languages