mirror of
https://github.com/AntKrotov/oberon-07-compiler.git
synced 2026-10-05 17:54:31 +00:00
* Форматирвоание READMY * Добавление целей сборки под Linux * Мзсенение целевого пакета сборки * Добавление компилятора в изолированном каталоге * Изменение регистра литер (стандарт для Linux) * Добавление пересобранного компилятора * Добавление тестов, целей сборки * Добавление тестов * Упрощение кода тестирования * Добавление комментариев в кож * Добавление теста на go Co-authored-by: SVI <shipkovvi@atomsbt.ru>
53 lines
794 B
Plaintext
53 lines
794 B
Plaintext
MODULE Hello;
|
|
|
|
IMPORT SYSTEM, Libdl, Args;
|
|
|
|
|
|
VAR
|
|
|
|
libc: INTEGER;
|
|
puts: PROCEDURE [linux] (pStr: INTEGER);
|
|
|
|
|
|
PROCEDURE OutStringLn (s: ARRAY OF CHAR);
|
|
BEGIN
|
|
puts(SYSTEM.ADR(s[0]))
|
|
END OutStringLn;
|
|
|
|
|
|
PROCEDURE main;
|
|
VAR
|
|
i: INTEGER;
|
|
s: ARRAY 80 OF CHAR;
|
|
|
|
BEGIN
|
|
OutStringLn("Hello");
|
|
|
|
OutStringLn("");
|
|
i := 0;
|
|
WHILE i < Args.argc DO
|
|
Args.GetArg(i, s);
|
|
INC(i);
|
|
OutStringLn(s)
|
|
END;
|
|
|
|
OutStringLn("");
|
|
i := 0;
|
|
WHILE i < Args.envc DO
|
|
Args.GetEnv(i, s);
|
|
INC(i);
|
|
OutStringLn(s)
|
|
END;
|
|
OutStringLn("");
|
|
|
|
OutStringLn("Bye")
|
|
END main;
|
|
|
|
|
|
BEGIN
|
|
libc := Libdl.open("libc.so.6", Libdl.LAZY);
|
|
SYSTEM.PUT(SYSTEM.ADR(puts), Libdl.sym(libc, "puts"));
|
|
ASSERT(puts # NIL);
|
|
main
|
|
END Hello.
|