Fpc
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
- 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
- defcmp - Compare definitions and parameter lists
- 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
- 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
-
- 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
-
See Also
[1] the official site