trovao@valhalla:~/Projetos/pascow$ ./pascow
(__)
(oO)
/------\\/
/ | ||
* /\\---/\\
~~ ~~
"Have you mooed today?"
PASCOW(n): PAScalito Compiler Without (a Name)
PASCOW(n) versão 1.0
Rodando em python 2.4.1 (#1, Apr 10 2005, 22:30:36)
[GCC 3.3.5]
Digite 'ajuda' para mais informações.
> ajuda
Comandos válidos do PASCOW:
ajuda Imprime esta listagem
carrega <nome_do_arquivo.pas> Carrega o arquivo nome_do_arquivo.pas
compila Compila todos os executáveis carregados
exibe <codigo> Exibe o código-fonte do programa com codigo
executavel <nome_do_programa> Exibe o código executável do programa nome_do_programa
executa <nome_do_programa> Executa o programa nome_do_programa
memoria <nome_do_programa> Exibe o conteúdo da "memória" do programa
lista Exibe os programas/arquivos carregados
testes Realiza testes de compilação/execução nos arquivos de exemplo.
sair Sai do interpretador
> carrega exemplos/fibonacci.pas
> carrega exemplos/programa1.pas
> carrega programa1-e1.pas
Erro de E/S. Arquivo programa1-e1.pas não encontrado.
> carrega exemplos/programa1-e1.pas
> carrega exemplos/programa2.pas
> carrega exemplos/programa2-e1.pas
> lista
Tabela de Programas:
Codigo Arquivo Nome Compilado?
0 exemplos/fibonacci.pas False
1 exemplos/programa1.pas False
2 exemplos/programa1-e1.pas False
3 exemplos/programa2.pas False
4 exemplos/programa2-e1.pas False
> compila
Compilando exemplos/fibonacci.pas
Sucesso!
Compilando exemplos/programa1.pas
Sucesso!
Compilando exemplos/programa1-e1.pas
Erro Sintatico na linha 12.
Esperava: *, div, mod, +, -, =, <, >, <>, <=, >=, ;
Encontrou: imprima
Compilando exemplos/programa2.pas
Sucesso!
Compilando exemplos/programa2-e1.pas
Erro Semantico: linha 6: erro de aridade do procedimento "leia".
Esperava 1, recebeu 2 argumento(s).
> lista
Tabela de Programas:
Codigo Arquivo Nome Compilado?
0 exemplos/fibonacci.pas fibonacci True
1 exemplos/programa1.pas programa1 True
2 exemplos/programa1-e1.pas False
3 exemplos/programa2.pas programa2 True
4 exemplos/programa2-e1.pas False
> exibe 2
programa programa1;
var a, b, c: inteiro;
inicio
a := 10;
b := 0;
leia(c);
enquanto b < a faca
inicio
b := b+1
imprima(b);
fim;
se a > c entao
inicio
b := c;
fim
senao
inicio
b := a;
fim
fim.
> exibe 4
programa programa2;
var a, b: inteiro;
inicio
leia(a, b);
se (a < 6) entao
inicio
b := 3;
fim;
fim.
> executa fibonacci
6
0
1
1
2
3
5
Programa executado com êxito.
Conteudo da "memória", variaveis:
Nome: x1, Programa: fibonacci, Tipo: inteiro, Valor: 3
Nome: x2, Programa: fibonacci, Tipo: inteiro, Valor: 5
Nome: num, Programa: fibonacci, Tipo: inteiro, Valor: 6
Nome: cont, Programa: fibonacci, Tipo: inteiro, Valor: 6
Nome: valor, Programa: fibonacci, Tipo: inteiro, Valor: 5
> exibe 0
programa fibonacci;
/* Imprime a sequencia de fibonacci ateh o num-esimo elemento
var x1,x2,valor, cont, num: inteiro;
inicio
x1 := -1;
x2 := 1;
cont := 0;
leia(num);
imprimalinha;
enquanto num < 0 faca
leia(num);
enquanto cont < num faca
inicio
valor := x1 + x2;
imprima(valor);
x1 := x2;
x2 := valor;
cont := cont + 1;
fim;
fim.
> executa programa1
5
1
2
3
4
5
6
7
8
9
10
Programa executado com êxito.
Conteudo da "memória", variaveis:
Nome: c, Programa: programa1, Tipo: inteiro, Valor: 5
Nome: a, Programa: programa1, Tipo: inteiro, Valor: 10
Nome: b, Programa: programa1, Tipo: inteiro, Valor: 5
> exibe 1
programa programa1;
var a, b, c: inteiro;
inicio
a := 10;
b := 0;
leia(c);
enquanto b < a faca
inicio
b := b+1;
imprima(b);
fim;
se a > c entao
inicio
b := c;
fim
senao
inicio
b := a;
fim
fim.
> lista
Tabela de Programas:
Codigo Arquivo Nome Compilado?
0 exemplos/fibonacci.pas fibonacci True
1 exemplos/programa1.pas programa1 True
2 exemplos/programa1-e1.pas False
3 exemplos/programa2.pas programa2 True
4 exemplos/programa2-e1.pas False
> executa programa2
5
Programa executado com êxito.
Conteudo da "memória", variaveis:
Nome: a, Programa: programa2, Tipo: inteiro, Valor: 5
Nome: b, Programa: programa2, Tipo: inteiro, Valor: 3
> exibe 3
programa programa2;
var a, b: inteiro;
inicio
leia(a);
se (a < 6) entao
inicio
b := 3;
fim;
fim.
> sair