Fpc

From havefunsoft wiki
Jump to: navigation, search

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