C# - Algumas notícias sobre o interpretador!
Autor: Lucas de Matos Rocha | Publicado: 2012-06-15T05:22:00-07:00

Bem...Eu tinha dito que queria fazer o interpretador em linguagem C . Pronto, eu fiz todas as funções que acabei desenvolvendo em C# , &nbsp;porém é muito melhor tratar strings com C# , então como se trata de um protótipo eu vou continuar a desenvolver nesta linguagem!

Até agora o interpretador distingue &nbsp;e interpreta :

'comentários (É claro! Que não é interpretador e nem compilado &nbsp;, simplesmente ignorado!!)
PRINT &nbsp;, A função print , imprimi &nbsp;somente textos por enquanto sem precisar especifica-los através de aspas(estou tentado corrigir).
Ele também distingue os tipos de dados do BASIC &nbsp;puro, Int e String;

'Test
PRINT TESTANDO
$String = " "
%Integer = 0&nbsp;

&nbsp;Podemos fazer isso ai em cima somente ou coisas parecidas hahaha....Bem consegui fazer isso com apenas 134 linhas!Se fosse com C eu estaria na faixa de umas 300 ou mais , porém muito mais rápido!
&nbsp;Vejam o print da tela abaixo!




(Clique na imagem para ampliar)



Quando eu terminar(Se terminar hhahaha!!!) eu posto o código completo , com os arquivos do projeto e com tudo que vocês tem direito para brincar assim como eu de criar interpretadores!Mas por enquanto apenas um "brinde" : A função PRINT (Do jeito que ela está no projeto) em C e C#.



C :

char funcao[]="";    //func palavra resevada    char msg[1500];    //msg//  FUNCAO PRINT                   if(code == 2);   {     printf(" \n");      scanf("%s",msg,"\n");         if(msg==" ")     {       printf (" Erro ao executa a função print(msg em branco!)\n");     }            printf("%s",msg,"\n");      }

C#




&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string msgOut = string.Empty;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string funcao = string.Empty;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; string i &nbsp; &nbsp; &nbsp;= string.Empty;



&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Exibir o prompt

&nbsp; &nbsp; System.Console.ForegroundColor = ConsoleColor.Green;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Console.Write(prompt);

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Console.ResetColor();

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Receber entrada da funcao

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; funcao = System.Console.ReadLine();

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp;#region &nbsp;Função PRINT

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; try

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; i = funcao.Substring(0, 5);

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Funcao IMPRIMIR (Print)

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;if (i == "print" || i == "Print" || i == "PRINT")

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; {

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; // &nbsp; &nbsp; msgOut = System.Console.ReadLine();

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Console.Write("");

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; //Exibir saída

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;msgOut = funcao.Substring(5, funcao.Length - 5);

&nbsp; &nbsp; &nbsp; System.Console.ForegroundColor = ConsoleColor.DarkCyan;

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Console.WriteLine(msgOut);

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; System.Console.ResetColor();

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; catch

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; { //Passar o char

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; Funcoes.nxtChar();

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; }

&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; #endregion











  Bem...Em C# o código nessa parte ficou muito maior porque coloquei estrutura de tratamento de erros,cor da fonte e outras coisas ...Opa! Quase faltou , a função no C# nxtChar();, basta criar uma classe Funcoes e um metodo public nxtChar e colocar nele : System.Console.Write(string.Empty);



Então é isso , até o próximo post!