Revision: 46789
Initial Code
Initial URL
Initial Description
Initial Title
Initial Tags
Initial Language
at May 25, 2011 03:57 by turbopascalfan
Initial Code
Procedure CompileProgram;
begin
SourceType := stProgram;
If CheckAndGetNextToken (Token_PROGRAM) then
begin
ExpectIdentifier;
CreateSymbolTableAndStoreMainModuleNameIdentifier;
GetNextToken;
If CheckAndGetNextToken (Token_LeftParenthesis) then
begin
Repeat
ExpectTokenAndGetNext (Token_Identifier);
until not CheckAndGetNextToken (Token_Comma);
ExpectTokenAndGetNext (Token_RightParenthesis);
end;
ExpectTokenAndGetNext (Token_Semicolon);
end else begin
CopyStringToCurrentIdentifier ('PROGRAM');
CreateSymbolTableAndStoreMainModuleNameIdentifier;
end;
SetModuleFlagsAndProcessUsedUnits;
ProcessDeclarations;
ProcessMainProgramBlock;
CheckForPeriodAndModuleEnd;
ImportObjectFiles;
CheckForUndefined_FORWARD_Or_EXTERNAL (Ptr (SymbolTable [stProcedures].Segment, SizeOf (TProceduresBlockRecord)));
JoinSymbolTablesAndCreateUnit;
CopySegmentsOfSymbolTablesToUnitHeader;
end;
Initial URL
http://turbopascal.org/
Initial Description
This is how Turbo Pascal works.
Initial Title
Turbo Pascal Compiler
Initial Tags
Initial Language
Pascal