21 kwietnia
20:41 2005
Poniżej znajduje się kod "interpretera" napisany w 5 minut, więc BARDZO BUGGY, BEZ SPRAWDZANIA BŁĘDÓW, ETC :( Zrobiłem to, żeby sprawdzić, czy w ogóle coś takiego jest możliwe. No i jest :)
Mając już gotowy "interpreter", wystarczy napisać dowolny program w Pascalu, a następnie nadać plikowi .pas atrybut "+x".
// "interpreter" uses dos; var doWrite: boolean = false; s: string = ''; begin assign(input, paramstr(1)); reset(input); assign(output, '/tmp/pascal.tmp'); rewrite(output); while not eof(input) do begin readln(input, s); if doWrite then writeln(output, s); // skip 1st line doWrite:= true; end; close(input); close(output); writeln(stderr, '==== INIT ===='); exec('/usr/local/bin/fpc', '-FE/tmp -o/tmp/pascal /tmp/pascal.tmp'); writeln(stderr, '==== EXEC ===='); exec('/tmp/pascal', ''); end.
Mając już gotowy "interpreter", wystarczy napisać dowolny program w Pascalu, a następnie nadać plikowi .pas atrybut "+x".
#!/bin/pascal
// przykład
uses glib, gdk, gtk;
var window, button: pGtkWidget;
begin
gtk_init(@argc, @argv);
window:= gtk_window_new(GTK_WINDOW_TOPLEVEL);
button:= gtk_button_new_with_label('Hello, World');
gtk_container_add(GTK_CONTAINER(window), button);
gtk_widget_show_all(window);
gtk_main();
end.
Proszę o komentarz
Nigdy nie lubiłem tego języka. Nawet w liceum na informatyce uprosiłem zgodę Pani Nauczycielki, żebym mógł pisać programy w C. :))
ee, fajny język. Do nauki w sam raz. A Delphi do wszystkiego poważniejszego :)
marcoos:
fooBar(); // czy to C czy FreePascal? ;)
x += 10;
i++;