Files
elna/boot/Compiler.mod

29 lines
642 B
Modula-2

MODULE Compiler;
FROM Terminal IMPORT WriteLn;
FROM FIO IMPORT WriteNBytes, StdIn, StdOut;
FROM SYSTEM IMPORT ADR, ADDRESS;
FROM Lexer IMPORT Lexer, LexerToken, LexerDestroy, LexerInitialize, LexerLex;
VAR
ALexer: Lexer;
Index, WrittenBytes: CARDINAL;
Token: LexerToken;
BEGIN
LexerInitialize(ADR(ALexer), StdIn);
Token := LexerLex(ADR(ALexer));
WHILE ALexer.Current^ <> CHAR(0) DO
WrittenBytes := WriteNBytes(StdOut, ADDRESS(ALexer.Current - ALexer.Start), ALexer.Start);
IF ALexer.Current^ <> '.' THEN
WriteLn()
END;
Token := LexerLex(ADR(ALexer));
END;
LexerDestroy(ADR(ALexer));
END Compiler.