Difference between revisions of "Fpc"

From havefunsoft wiki
Jump to: navigation, search
m (Units)
m (Units)
 
(14 intermediate revisions by the same user not shown)
Line 2: Line 2:
 
The page contains parts of the Free Pascal compiler source code.
 
The page contains parts of the Free Pascal compiler source code.
 
==Units==
 
==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
 
::symconst - Symbol table constants
 
::symbase - This unit handles the symbol tables
 
::symbase - This unit handles the symbol tables
Line 7: Line 8:
 
::::symsym - Implementation for the symbols types of the symtable
 
::::symsym - Implementation for the symbols types of the symtable
 
::::symdef - Symbol table implementation for the definitions
 
::::symdef - Symbol table implementation for the definitions
::parser
+
:::defcmp - Compare definitions and parameter lists
::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
 
::node - Basic node handling
 
:::nadd - Type checking and simplification for add nodes
 
:::nadd - Type checking and simplification for add nodes
Line 42: Line 61:
 
:::ncgset - Generate generic assembler for in set/case labels
 
:::ncgset - Generate generic assembler for in set/case labels
 
:::ncgutil - Helper routines for all code generators
 
:::ncgutil - Helper routines for all code generators
:globals - This unit implements some support functions and global variables
+
::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
 
: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==
 
[http://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