Difference between revisions of "Fpc"

From havefunsoft wiki
Jump to: navigation, search
(started the page)
 
m (Units)
 
(19 intermediate revisions by the same user not shown)
Line 1: Line 1:
 
Free Pascal Compiler
 
Free Pascal Compiler
 +
The page contains parts of the Free Pascal compiler source code.
 +
==Units==
 +
:compiler - This unit is the interface of the compiler which can be used by external programs to link in the compiler
 +
::symconst - Symbol table constants
 +
::symbase - This unit handles the symbol tables
 +
:::symtype - This unit handles the symbol tables
 +
::::symsym - Implementation for the symbols types of the symtable
 +
::::symdef - Symbol table implementation for the definitions
 +
:::defcmp - Compare definitions and parameter lists
 +
:::defutils - This unit provides some help routines for type handling
 +
:::htypechk - This unit exports some help routines for the type checking
 +
::scanner - This unit implements the scanner part and handling of the switches
 +
:::scandir - This unit implements directive parsing for the scanner
 +
::parser - This unit does the parsing process
 +
:::pbase - Contains some helper routines for the parser
 +
:::pdecl - Does declaration (but not type) parsing for Free Pascal
 +
:::pdecobj - Does object types for Free Pascal
 +
:::pdecsub - Does the parsing of the procedures/functions
 +
:::pdecvar - Parses variable declarations. Used for var statement and record definitions
 +
:::pexports - This unit handles the exports parsing
 +
:::pexpr - Does parsing of expression for Free Pascal
 +
:::pinline - Generates nodes for routines that need compiler support
 +
:::pmodules - Handles the parsing and loading of the modules (ppufiles)
 +
:::pstatmnt - Does the parsing of the statements
 +
:::psub - Does the parsing and codegeneration at subroutine level
 +
:::ptconst - Reads typed constants
 +
:::ptype - Does parsing types for Free Pascal
 +
::constexp - This unit implements a Tconstexprint type. This type simulates an integer type that can handle numbers from low(int64) to high(qword) calculations.
 +
::node - Basic node handling
 +
:::nadd - Type checking and simplification for add nodes
 +
:::nbas - This unit implements some basic nodes
 +
:::ncal - This file implements the node for sub procedure calling
 +
:::nutils - Type checking and register allocation for inline nodes
 +
:::ncon - Type checking and register allocation for constants
 +
:::ncnv - Type checking and register allocation for type converting nodes
 +
:::nmat - Type checking and register allocation for math nodes
 +
:::nstate - This unit contains support routines for the state tracker
 +
:::nset - Type checking and register allocation for set/case nodes
 +
:::nmem - Type checking and register allocation for memory related nodes
 +
:::nopt - This unit implements optimized nodes
 +
:::nobj - Routines for the code generation of data structures like VMT, Messages, VTables, Interfaces descs
 +
:::nobjc - This unit implements Objective-C nodes
 +
:::nld - Type checking and register allocation for load/assignment nodes
 +
:::ninl - Type checking and register allocation for inline nodes
 +
:::nflw - Type checking and register allocation for nodes that influence the flow
 +
::
 +
:::ncgadd - Code generation for add nodes (generic version)
 +
:::ncgbas - This unit implements some basic nodes
 +
:::ncgcal - Generate assembler for call nodes
 +
:::ncgcnv - Generate assembler for nodes that handle type conversions which are the same for all (most) processors
 +
:::ncgcon - Generate assembler for constant nodes which are the same for all (most) processors
 +
:::ncgflw - Generate assembler for nodes that influence the flow which are the same for all (most?) processors
 +
:::ncginl - Generate generic inline nodes
 +
:::ncgld - Generate assembler for nodes that handle loads and assignments which are the same for all (most) processors
 +
:::ncgmat - Generate generic mathematical nodes
 +
:::ncgmem - Generate assembler for memory related nodes which are the same for all (most?) processors
 +
:::ncgobjc - This unit implements code generator support for Objective-C nodes
 +
:::ncgopt - This unit implements the generic implementation of optimized nodes
 +
:::ncgrtti - Routines for the code generation of RTTI data structures
 +
:::ncgset - Generate generic assembler for in set/case labels
 +
:::ncgutil - Helper routines for all code generators
 +
::rabase - Basic stuff for assembler readers
 +
:::rasm - Basic stuff for assembler readers
 +
:::rautils - This unit implements some support routines for assembler parsing independent of the processor
 +
:::raatt - Does the parsing for the GAS styled inline assembler.
 +
::cgbase - Some basic types and constants for the code generation
 +
:::cgobj - This unit implements the basic code generator object
 +
:::cgutils - Some basic types and constants for the code generation
 +
:::cg6432 - This unit implements the code generation for 64 bit int arithmethics on 32 bit processors
 +
::comprsrc - Handles the resource files handling
 +
::export - This unit implements an uniform export object
 +
:::expunix - This unit implements common support for import,export,link routines for unix target
 +
::gendef - Generation of a .def file for needed for Os2/Win32
 +
:globtyp - Global types
 +
::globals - This unit implements some support functions and global variables
 +
:fmodule - This unit implements the first loading and searching of the modules
 +
::fppu - This unit implements the first loading and searching of the modules
 +
::
 +
:::comphook - This unit handles the compilerhooks for output to external programs
 +
:::cutils - This unit implements some support functions
 +
:::cclasses - This module provides some basic classes
 +
:::cfileutl - This module provides some basic file/dir handling utils and classes
 +
:::cstreams - This module provides stream classes
 +
:::cmsgs - This unit implements the message object
 +
:::crefs - Common reference types
 +
:::cresstr - Handles resourcestrings
 +
:::finput - This unit implements an extended file management
 +
:::fpccrc - Routines to compute CRC values
 +
 
==See Also==
 
==See Also==
[freepascal.org] the official site
+
[http://freepascal.org] the official site

Latest revision as of 08:24, 29 October 2015

Free Pascal Compiler The page contains parts of the Free Pascal compiler source code.

Units

compiler - This unit is the interface of the compiler which can be used by external programs to link in the compiler
symconst - Symbol table constants
symbase - This unit handles the symbol tables
symtype - This unit handles the symbol tables
symsym - Implementation for the symbols types of the symtable
symdef - Symbol table implementation for the definitions
defcmp - Compare definitions and parameter lists
defutils - This unit provides some help routines for type handling
htypechk - This unit exports some help routines for the type checking
scanner - This unit implements the scanner part and handling of the switches
scandir - This unit implements directive parsing for the scanner
parser - This unit does the parsing process
pbase - Contains some helper routines for the parser
pdecl - Does declaration (but not type) parsing for Free Pascal
pdecobj - Does object types for Free Pascal
pdecsub - Does the parsing of the procedures/functions
pdecvar - Parses variable declarations. Used for var statement and record definitions
pexports - This unit handles the exports parsing
pexpr - Does parsing of expression for Free Pascal
pinline - Generates nodes for routines that need compiler support
pmodules - Handles the parsing and loading of the modules (ppufiles)
pstatmnt - Does the parsing of the statements
psub - Does the parsing and codegeneration at subroutine level
ptconst - Reads typed constants
ptype - Does parsing types for Free Pascal
constexp - This unit implements a Tconstexprint type. This type simulates an integer type that can handle numbers from low(int64) to high(qword) calculations.
node - Basic node handling
nadd - Type checking and simplification for add nodes
nbas - This unit implements some basic nodes
ncal - This file implements the node for sub procedure calling
nutils - Type checking and register allocation for inline nodes
ncon - Type checking and register allocation for constants
ncnv - Type checking and register allocation for type converting nodes
nmat - Type checking and register allocation for math nodes
nstate - This unit contains support routines for the state tracker
nset - Type checking and register allocation for set/case nodes
nmem - Type checking and register allocation for memory related nodes
nopt - This unit implements optimized nodes
nobj - Routines for the code generation of data structures like VMT, Messages, VTables, Interfaces descs
nobjc - This unit implements Objective-C nodes
nld - Type checking and register allocation for load/assignment nodes
ninl - Type checking and register allocation for inline nodes
nflw - Type checking and register allocation for nodes that influence the flow
ncgadd - Code generation for add nodes (generic version)
ncgbas - This unit implements some basic nodes
ncgcal - Generate assembler for call nodes
ncgcnv - Generate assembler for nodes that handle type conversions which are the same for all (most) processors
ncgcon - Generate assembler for constant nodes which are the same for all (most) processors
ncgflw - Generate assembler for nodes that influence the flow which are the same for all (most?) processors
ncginl - Generate generic inline nodes
ncgld - Generate assembler for nodes that handle loads and assignments which are the same for all (most) processors
ncgmat - Generate generic mathematical nodes
ncgmem - Generate assembler for memory related nodes which are the same for all (most?) processors
ncgobjc - This unit implements code generator support for Objective-C nodes
ncgopt - This unit implements the generic implementation of optimized nodes
ncgrtti - Routines for the code generation of RTTI data structures
ncgset - Generate generic assembler for in set/case labels
ncgutil - Helper routines for all code generators
rabase - Basic stuff for assembler readers
rasm - Basic stuff for assembler readers
rautils - This unit implements some support routines for assembler parsing independent of the processor
raatt - Does the parsing for the GAS styled inline assembler.
cgbase - Some basic types and constants for the code generation
cgobj - This unit implements the basic code generator object
cgutils - Some basic types and constants for the code generation
cg6432 - This unit implements the code generation for 64 bit int arithmethics on 32 bit processors
comprsrc - Handles the resource files handling
export - This unit implements an uniform export object
expunix - This unit implements common support for import,export,link routines for unix target
gendef - Generation of a .def file for needed for Os2/Win32
globtyp - Global types
globals - This unit implements some support functions and global variables
fmodule - This unit implements the first loading and searching of the modules
fppu - This unit implements the first loading and searching of the modules
comphook - This unit handles the compilerhooks for output to external programs
cutils - This unit implements some support functions
cclasses - This module provides some basic classes
cfileutl - This module provides some basic file/dir handling utils and classes
cstreams - This module provides stream classes
cmsgs - This unit implements the message object
crefs - Common reference types
cresstr - Handles resourcestrings
finput - This unit implements an extended file management
fpccrc - Routines to compute CRC values

See Also

[1] the official site