Ésta es la versión G o o g l e guardada en el caché de la https://wiki.lugmen.org.ar/twiki/view/Main/TyphonExamples?skin=print obtenida el 1 Dic 2004 15:35:29 GMT.
La caché de G o o g l e es la instantánea de la página que tomamos cuando exploramos la Web en forma automática.
Es posible que la página haya cambiado desde entonces. Haga clic aquí para ver la página actual sin resaltar.
Esta página guardada en el caché puede hacer referencia a imágenes que ya no están disponibles. Haga clic aquí para obtener únicamente el texto guardado en el caché. Para vincularse a esta página o para marcarla, utilice el siguiente url: http://www.google.com/search?q=cache:hVONU0SZ6CIJ:https://wiki.lugmen.org.ar/twiki/view/Main/TyphonExamples%3Fskin%3Dprint+typhonexamples&hl=es
Google no tiene relación con los autores de esta página ni es responsable de su contenido. |
Se han resaltado estos términos de búsqueda: | typhonexamples |
|
|
TWiki . Main . TyphonExamples
TWiki . Main . TyphonExamples
|
include stdio.h
int main():
printf("Hola mundo!")
return 0
#include <stdio.h>
int main()
{
printf("Hola mundo!");
return 0;
}
Las líneas separan bloques de código para ver como Typhon traduciría a C++.
include vector, string, iostream
import vector, string, cout from std
int main(vector<string> args):
for const string& s in vector<string> args:
cout << s << "\n"
return 0
// include vector, string, iostream
#include <vector>
#include <string>
#include <iostream>
// import vector, string, cout from std
using std::vector;
using std::string;
using std::cout;
// int main(vector<string> args):
int main(int ___argc, char* ___argv[]):
vector<string> args(___argc);
for (int i = 0; i < ___argc; ++i)
args.push_back(___argv[i]);
// for const string& s in vector<string> args:
for (vector<string>::const_iterator ___s = args.begin();
___s != args.end();
++___s)
{
const std::string& s = *___s;
// cout << s << "\n"
cout << s << "\n";
// for const string& s in vector<string> args:
}
// return 0
return 0;
// int main(vector<string> args):
}
Extraído de los ejemplos del compilador dmd para linux. Sólo para comparar la
complejidad sintáctica y la cantidad de código que se necesita escribir en un
lenguaje que podría acercarse de algún modo a donde TyphonLanguage apunta.
import std.file;
int main (char[][] args)
{
int w_total, l_total, c_total;
printf (" lines words bytes file\n");
foreach (char[] arg; args[1 .. args.length])
{
int w_cnt, l_cnt, c_cnt;
bool inword;
char[] input = cast(char[])std.file.read(arg);
foreach (char c; input)
{
if (c == '\n')
++l_cnt;
if (c != ' ')
{
if (!inword)
{
inword = 1;
++w_cnt;
}
}
else
inword = 0;
++c_cnt;
}
printf ("%8lu%8lu%8lu %.*s\n", l_cnt, w_cnt, c_cnt, arg);
l_total += l_cnt;
w_total += w_cnt;
c_total += c_cnt;
}
if (args.length > 2)
{
printf ("--------------------------------------\n%8lu%8lu%8lu total",
l_total, w_total, c_total);
}
return 0;
}
Escrito lo más parecido posible (por más ineficiente y feo que sea :) al ejemplo
de D (sacado de los ejemplos del compilador de DigitalMars?).
include fstream, iostream, vector, string, iomanip
import cout, vector, string, ifstream, getline, setw from std
int main (vector<string> args):
int w_total = 0, l_total = 0, c_total = 0
cout << " lines words bytes file\n"
for string arg in args[1:]:
int w_cnt = 0, l_cnt = 0, c_cnt = 0
bool inword = false
string contenido
block:
ifstream f(arg)
string buff
while getline(f, buff):
contenido += buff
for char c in contenido:
if c == '\n':
++l_cnt
if c != ' ':
if not inword:
inword = true
++w_cnt
else:
inword = false
++c_cnt
cout << width(8) << l_cnt << width(8) << w_cnt << width(8) << c_cnt << " " << arg << "\n"
l_total += l_cnt
w_total += w_cnt
c_total += c_cnt
if args.size() > 2:
cout << "--------------------------------------\n"
cout << width(8) << l_total << width(8) << w_total << width(8) << c_total << " total.\n"
return 0
Tener en cuenta que este sería el código generado automáticamente por Typon.
Obviamente no es la forma más compacta ni la más clara de escribir el programa
en C++.
Este programa, por supuesto, compila y anda.
#include <fstream>
#include <iostream>
#include <vector>
#include <string>
#include <iomanip>
using std::cout;
using std::vector;
using std::string;
using std::ifstream;
using std::getline;
using std::setw;
int main(int ___argc, char* ___argv[])
{
vector<string> args;
args.reserve(___argc);
for (int i = 0; i < ___argc; ++i)
args.push_back(___argv[i]);
int w_total = 0, l_total = 0, c_total = 0;
cout << " lines words bytes file\n";
for (vector<string>::iterator ___arg = args.begin()+1;
___arg != args.end();
++___arg)
{
string arg = *___arg;
int w_cnt = 0, l_cnt = 0, c_cnt = 0;
bool inword = false;
string contenido;
{
ifstream f(arg.c_str());
string buff;
while (getline(f, buff))
{
contenido += buff;
}
}
for (string::iterator ___c = contenido.begin();
___c != contenido.end();
++___c)
{
char c = *___c;
if (c == '\n')
{
++l_cnt;
}
if( c != ' ')
{
if (not inword)
{
inword = true;
++w_cnt;
}
}
else
{
inword = false;
}
++c_cnt;
}
cout << setw(8) << l_cnt << setw(8) << w_cnt << setw(8) << c_cnt << " " << arg << "\n";
l_total += l_cnt;
w_total += w_cnt;
c_total += c_cnt;
}
if (args.size() > 2)
{
cout << "--------------------------------------\n";
cout << setw(8) << l_total << setw(8) << w_total << setw(8) << c_total << " total.\n";
}
return 0;
}
Copyright © 2000-2004 por los autores contribuyentes