37 lines
561 B
ObjectPascal
37 lines
561 B
ObjectPascal
program calc;
|
|
|
|
{$APPTYPE CONSOLE}
|
|
|
|
uses
|
|
Classes,
|
|
SysUtils,
|
|
calcLexer in 'calcLexer.pas',
|
|
calcParser in 'calcParser.pas';
|
|
|
|
var
|
|
stm: TFileStream;
|
|
lex: TcalcLexer;
|
|
par: TcalcParser;
|
|
|
|
begin
|
|
if ParamCount <> 1 then
|
|
begin
|
|
writeln('usage: calc <filename>');
|
|
exit;
|
|
end
|
|
else
|
|
begin
|
|
try
|
|
stm := TFileStream.Create( ParamStr(1), fmOpenRead);
|
|
lex := TcalcLexer.Create(stm);
|
|
par := TcalcParser.Create(lex);
|
|
|
|
par.calc;
|
|
except
|
|
end;
|
|
end;
|
|
|
|
stm.Free;
|
|
par.Free;
|
|
end.
|