Difference between revisions of "Fpc"
m |
m (→Units) |
||
(17 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== | ||
− | :symconst - Symbol table constants | + | :compiler - This unit is the interface of the compiler which can be used by external programs to link in the compiler |
− | :symbase - This unit handles the symbol tables | + | ::symconst - Symbol table constants |
− | ::symtype - This unit handles the symbol tables | + | ::symbase - This unit handles the symbol tables |
− | :::symsym - Implementation for the symbols types of the symtable | + | :::symtype - This unit handles the symbol tables |
− | :::symdef - Symbol table implementation for the definitions | + | ::::symsym - Implementation for the symbols types of the symtable |
− | :defcmp - Compare definitions and parameter lists | + | ::::symdef - Symbol table implementation for the definitions |
− | :node - Basic node handling | + | :::defcmp - Compare definitions and parameter lists |
− | ::nadd - Type checking and simplification for add nodes | + | :::defutils - This unit provides some help routines for type handling |
− | ::nbas - This unit implements some basic nodes | + | :::htypechk - This unit exports some help routines for the type checking |
− | ::ncal - This file implements the node for sub procedure calling | + | ::scanner - This unit implements the scanner part and handling of the switches |
− | ::nutils - Type checking and register allocation for inline nodes | + | :::scandir - This unit implements directive parsing for the scanner |
− | ::ncon - Type checking and register allocation for constants | + | ::parser - This unit does the parsing process |
− | ::ncnv - Type checking and register allocation for type converting nodes | + | :::pbase - Contains some helper routines for the parser |
− | ::nmat - Type checking and register allocation for math nodes | + | :::pdecl - Does declaration (but not type) parsing for Free Pascal |
− | ::nstate - This unit contains support routines for the state tracker | + | :::pdecobj - Does object types for Free Pascal |
− | ::nset - Type checking and register allocation for set/case nodes | + | :::pdecsub - Does the parsing of the procedures/functions |
− | ::nmem - Type checking and register allocation for memory related nodes | + | :::pdecvar - Parses variable declarations. Used for var statement and record definitions |
− | ::nopt - This unit implements optimized nodes | + | :::pexports - This unit handles the exports parsing |
− | ::nobj - Routines for the code generation of data structures like VMT, Messages, VTables, Interfaces descs | + | :::pexpr - Does parsing of expression for Free Pascal |
− | ::nobjc - This unit implements Objective-C nodes | + | :::pinline - Generates nodes for routines that need compiler support |
− | ::nld - Type checking and register allocation for load/assignment nodes | + | :::pmodules - Handles the parsing and loading of the modules (ppufiles) |
− | ::ninl - Type checking and register allocation for inline nodes | + | :::pstatmnt - Does the parsing of the statements |
− | ::nflw - Type checking and register allocation for nodes that influence the flow | + | :::psub - Does the parsing and codegeneration at subroutine level |
− | : | + | :::ptconst - Reads typed constants |
− | ::ncgadd - Code generation for add nodes (generic version) | + | :::ptype - Does parsing types for Free Pascal |
− | ::ncgbas - This unit implements some basic nodes | + | ::constexp - This unit implements a Tconstexprint type. This type simulates an integer type that can handle numbers from low(int64) to high(qword) calculations. |
− | ::ncgcal - Generate assembler for call nodes | + | ::node - Basic node handling |
− | ::ncgcnv - Generate assembler for nodes that handle type conversions which are the same for all (most) processors | + | :::nadd - Type checking and simplification for add nodes |
− | ::ncgcon - Generate assembler for constant nodes which are the same for all (most) processors | + | :::nbas - This unit implements some basic nodes |
− | ::ncgflw - Generate assembler for nodes that influence the flow which are the same for all (most?) processors | + | :::ncal - This file implements the node for sub procedure calling |
− | ::ncginl - Generate generic inline nodes | + | :::nutils - Type checking and register allocation for inline nodes |
− | ::ncgld - Generate assembler for nodes that handle loads and assignments which are the same for all (most) processors | + | :::ncon - Type checking and register allocation for constants |
− | ::ncgmat - Generate generic mathematical nodes | + | :::ncnv - Type checking and register allocation for type converting nodes |
− | ::ncgmem - Generate assembler for memory related nodes which are the same for all (most?) processors | + | :::nmat - Type checking and register allocation for math nodes |
− | ::ncgobjc - This unit implements code generator support for Objective-C nodes | + | :::nstate - This unit contains support routines for the state tracker |
− | ::ncgopt - This unit implements the generic implementation of optimized nodes | + | :::nset - Type checking and register allocation for set/case nodes |
− | ::ncgrtti - Routines for the code generation of RTTI data structures | + | :::nmem - Type checking and register allocation for memory related nodes |
− | ::ncgset - Generate generic assembler for in set/case labels | + | :::nopt - This unit implements optimized nodes |
− | ::ncgutil - Helper routines for all code generators | + | :::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== | ||
[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
- symtype - This unit handles the symbol tables
- 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