| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576 | 
							- import { Types } from './../ast/types';
 
- const tiposComandos = Object.freeze({comment:"comment", reader:"reader", writer:"writer"});
 
- export class Variavel {
 
-   constructor (tipo, nome, valor, dimensoes = 0, eh_constante = false, linhas = 0, colunas = 0) {
 
-     this.tipo = tipo;
 
-     this.nome = nome;
 
-     this.valor = valor;
 
-     this.dimensoes = dimensoes;
 
-     this.eh_constante = eh_constante;
 
-     this.linhas = linhas;
 
-     this.colunas = colunas;
 
-   }
 
- }
 
- export class Funcao {
 
-   constructor (nome, tipo_retorno = Types.VOID, dimensoes_retorno = 0, lista_parametros = null, eh_principal = false, esta_oculta = false, variaveis = [], comentario_funcao = null) {
 
-     this.nome = nome;
 
-     this.tipo_retorno = tipo_retorno;
 
-     this.dimensoes_retorno = dimensoes_retorno;
 
-     this.lista_parametros = lista_parametros;
 
-     this.eh_principal = eh_principal;
 
-     this.esta_oculta = esta_oculta;
 
-     this.variaveis = variaveis;
 
-     this.comentario_funcao = comentario_funcao;
 
-     this.comandos = [];
 
-   }
 
- }
 
- export class Comentario {
 
-   
 
-   constructor (texto_comentario) {
 
-     this.tipo = tiposComandos.comment;
 
-     this.texto_comentario = texto_comentario;
 
-   }
 
- }
 
- export class Comando {
 
-   constructor (tipo) {
 
-     this.tipo = tipo;
 
-   }
 
- } 
 
- export class Expressao {
 
-   constructor (conteudo) {
 
-     this.conteudo = conteudo;
 
-   }
 
- }
 
- export class Programa {
 
-   constructor () {
 
-     this.funcoes = [];
 
-     this.globais = [];
 
-   };
 
-   adicionarFuncao (funcao) {
 
-     this.funcoes.push(funcao);
 
-   }
 
-   adicionarVariavel(funcao, variavel) {
 
-     if (this.funcoes[funcao].variaveis === null) {
 
-       this.funcoes[funcao].variaveis = [];
 
-     }
 
-     this.funcoes[funcao].variaveis.push(variavel);
 
-   }
 
-   adicionarGlobal (variavel) {
 
-     this.globais.push(variavel);
 
-   }
 
- }
 
 
  |